sql >> Databasteknik >  >> RDS >> Sqlserver

SQL SERVER - Förstå hur MIN(text) fungerar

Det bestäms av sorteringen (sorteringsordning). För de flesta kulturer är sorteringsordningen densamma som den alfabetiska ordningen i det engelska alfabetet så:

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

Därför är 'AA' minimivärdet. För andra kulturer kanske det inte håller. Till exempel skulle en dansk sammanställning returnera 'AB' som minimum eftersom 'AA'> 'AB'. Detta beror på att 'AA' behandlas som likvärdigt med 'Å' som är den sista bokstaven i det danska alfabetet.

SELECT MIN(s COLLATE Danish_Norwegian_CI_AS) FROM table1;

min_s
AB

För att få en "vanlig" sorteringsordning använd Latin1_General_Bin sammanställning:

SELECT MIN(s COLLATE Latin1_General_Bin) FROM table1;

min_s
AA

För att återskapa detta resultat kan du skapa denna testtabell:

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


  1. Mysql select * from returnerar inte alla rader

  2. Hur man åtgärdar "ALTER TABLE SWITCH-satsen misslyckades"

  3. PHP PDO Syntaxfel eller åtkomstöverträdelse:1064 vid infogning

  4. Hur man hanterar MySQL-servern körs med alternativet --secure-file-priv så den kan inte köra detta uttalande på en Mac