Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Comparação de strings SQL, operadores maiores e menores que


Os operadores de comparação (incluindo < e > ) "trabalha" com valores de string e também com números.

Para MySQL

Por padrão, as comparações de strings não diferenciam maiúsculas de minúsculas e usam o conjunto de caracteres atual. O padrão é latin1 (cp1252 Europa Ocidental), que também funciona bem para inglês.

As comparações de strings farão distinção entre maiúsculas e minúsculas quando a ordenação do conjunto de caracteres das strings sendo comparadas fizer distinção entre maiúsculas e minúsculas, ou seja, o nome do conjunto de caracteres termina em _cs em vez de _ci . Não faz sentido repetir todas as informações que estão disponíveis no MySQL Reference Manual aqui.

Referência de Operadores de Comparação do MySQL:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html

Mais informações sobre conjuntos de caracteres/collations do MySQL:
http://dev.mysql.com/doc/refman/5.5/en/charset.html

Para responder às perguntas específicas que você fez:

P: esta é uma maneira possível de comparar strings no SQL?

R: Sim, tanto no MySQL quanto no SQL Server

P: e como ele age?

R: Um operador de comparação retorna um booleano, seja TRUE, FALSE ou NULL.

P: uma string menor que outra vem antes na ordem do dicionário? Por exemplo, a bola é menor que a água?

R: Sim, porque 'b' vem antes de 'w' na ordenação do conjunto de caracteres, a expressão
  'ball' < 'water'

retornará VERDADEIRO. (Isso depende do conjunto de caracteres e no agrupamento .

P: e essa comparação diferencia maiúsculas de minúsculas?

R: Se uma comparação específica diferencia maiúsculas de minúsculas ou não, depende do servidor de banco de dados; por padrão, tanto o SQL Server quanto o MySQL não diferenciam maiúsculas de minúsculas.

No MySQL, é possível fazer comparações de strings especificando um agrupamento de conjuntos de caracteres que diferencia maiúsculas de minúsculas (o nome do conjunto de caracteres terminará em _cs em vez de _ci)

P: Por exemplo BALL
R: Por padrão, tanto no SQL Server quanto no MySQL, a expressão
  'BALL' < 'water'

retornaria TRUE.