Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL SERVER - Verstehen, wie MIN(text) funktioniert

Sie wird durch die Sortierung bestimmt (Sortierreihenfolge). Für die meisten Kulturen ist die Sortierreihenfolge dieselbe wie die alphabetische Reihenfolge im englischen Alphabet, also:

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

Daher ist 'AA' der Mindestwert. Für andere Kulturen gilt dies möglicherweise nicht. Zum Beispiel würde eine dänische Sortierung „AB“ als Minimum zurückgeben, weil „AA“> „AB“. Dies liegt daran, dass „AA“ als Äquivalent zu „Å“ behandelt wird, dem letzten Buchstaben im dänischen Alphabet.

SELECT MIN(s COLLATE Danish_Norwegian_CI_AS) FROM table1;

min_s
AB

Um eine "normale" Sortierreihenfolge zu erhalten, verwenden Sie Latin1_General_Bin Sortierung:

SELECT MIN(s COLLATE Latin1_General_Bin) FROM table1;

min_s
AA

Um dieses Ergebnis zu reproduzieren, können Sie diese Testtabelle erstellen:

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