sql >> Database >  >> RDS >> Sqlserver

SQL SERVER - Begrijpen hoe MIN(tekst) werkt

Het wordt bepaald door de sortering (sorteervolgorde). Voor de meeste culturen is de sorteervolgorde hetzelfde als de alfabetische volgorde in het Engelse alfabet, dus:

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

Daarom is 'AA' de minimumwaarde. Voor andere culturen geldt dit misschien niet. Een Deense sortering zou bijvoorbeeld 'AB' als minimum retourneren omdat 'AA'> 'AB'. Dit komt omdat 'AA' wordt behandeld als equivalent aan 'Å', de laatste letter in het Deense alfabet.

SELECT MIN(s COLLATE Danish_Norwegian_CI_AS) FROM table1;

min_s
AB

Om een ​​"gewone" sorteervolgorde te krijgen, gebruikt u de Latin1_General_Bin sortering:

SELECT MIN(s COLLATE Latin1_General_Bin) FROM table1;

min_s
AA

Om dit resultaat te reproduceren kunt u deze testtabel maken:

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


  1. Gegevens invoegen in de Oracle-database met behulp van php

  2. Probleem bij het vergelijken van het resultaat van to_char(myDate, 'DAY') met een string

  3. MySQL:VEREIST SSL niet weergegeven in subsidies

  4. Twee kolommen in subquery in waar-clausule