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

SQL SERVER - Forstå hvordan MIN(tekst) virker

Det bestemmes af sorteringen (sorteringsrækkefølge). For de fleste kulturer er sorteringsrækkefølgen den samme som den alfabetiske rækkefølge i det engelske alfabet, så:

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

Derfor er 'AA' minimumsværdien. For andre kulturer holder dette måske ikke. For eksempel vil en dansk sammenstilling returnere 'AB' som minimum, fordi 'AA'> 'AB'. Dette skyldes, at 'AA' behandles som ækvivalent med 'Å', som er det sidste bogstav i det danske alfabet.

SELECT MIN(s COLLATE Danish_Norwegian_CI_AS) FROM table1;

min_s
AB

For at få en "almindelig" sorteringsrækkefølge, brug Latin1_General_Bin indsamling:

SELECT MIN(s COLLATE Latin1_General_Bin) FROM table1;

min_s
AA

For at gengive dette resultat kan du oprette denne testtabel:

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


  1. Sådan formateres tal som valuta i PostgreSQL

  2. Hvordan kan jeg gå gennem alle rækker i en tabel? (MySQL)

  3. CAST(DATETIME AS DATE) over WHERE-sætning

  4. Kan en fremmednøgle referere til et ikke-unikt indeks?