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

SQL SERVER - Capire come funziona MIN(text).

È determinato dalla confronto (ordinamento). Per la maggior parte delle culture l'ordine di confronto è lo stesso dell'ordine alfabetico dell'alfabeto inglese, quindi:

  • 'AA' <'AB'
  • 'AA' <'AC'
  • 'AB' <'AC'

Pertanto 'AA' è il valore minimo. Per altre culture questo potrebbe non reggere. Ad esempio, un confronto danese restituirebbe 'AB' come minimo perché 'AA'> 'AB'. Questo perché 'AA' è considerato equivalente a 'Å' che è l'ultima lettera dell'alfabeto danese.

SELECT MIN(s COLLATE Danish_Norwegian_CI_AS) FROM table1;

min_s
AB

Per ottenere un ordinamento "ordinario" usa il Latin1_General_Bin confronto:

SELECT MIN(s COLLATE Latin1_General_Bin) FROM table1;

min_s
AA

Per riprodurre questo risultato puoi creare questa tabella di prova:

CREATE TABLE table1 (s varchar(100));
INSERT INTO table1 (s) VALUES ('AA'), ('AB'), ('AC');