Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Confronto di stringhe SQL, maggiore e minore di operatori

Gli operatori di confronto (incluso < e > ) "funziona" con valori di stringa e numeri.

Per MySQL

Per impostazione predefinita, i confronti tra stringhe non fanno distinzione tra maiuscole e minuscole e utilizzano il set di caratteri corrente. L'impostazione predefinita è latin1 (cp1252 Europa occidentale), che funziona bene anche per l'inglese.

I confronti tra stringhe faranno distinzione tra maiuscole e minuscole quando il confronto del set di caratteri delle stringhe da confrontare fa distinzione tra maiuscole e minuscole, ovvero il nome del set di caratteri termina con _cs anziché _ci . Non ha davvero senso ripetere tutte le informazioni disponibili nel Manuale di riferimento di MySQL qui.

Riferimento per gli operatori di confronto MySQL:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html

Maggiori informazioni sui set di caratteri/collations MySQL:
http://dev.mysql.com/doc/refman/5.5/en/charset.html

Per rispondere alle domande specifiche che hai posto:

D: è questo un modo possibile per confrontare le stringhe in SQL?

R: Sì, sia in MySQL che in SQL Server

D: e come agisce?

R: Un operatore di confronto restituisce un valore booleano, TRUE, FALSE o NULL.

D: una stringa in meno di un'altra viene prima nell'ordine del dizionario? Ad esempio, la palla è meno dell'acqua?

R: Sì, perché 'b' viene prima di 'w' nelle regole di confronto del set di caratteri, l'espressione

  'ball' < 'water'

restituirà VERO. (Questo dipende dal set di caratteri e sulla collazione .

D: e questo confronto fa distinzione tra maiuscole e minuscole?

R: Il fatto che un particolare confronto faccia distinzione tra maiuscole e minuscole o meno dipende dal server di database; per impostazione predefinita, sia SQL Server che MySQL non fanno distinzione tra maiuscole e minuscole.

In MySQL è possibile effettuare confronti tra stringhe specificando un confronto del set di caratteri che fa distinzione tra maiuscole e minuscole (il nome del set di caratteri terminerà con _cs anziché _ci)

D: Ad esempio BALL

R: Per impostazione predefinita, sia in SQL Server che in MySQL, l'espressione

  'BALL' < 'water'

restituirebbe VERO.