sql >> Databáze >  >> RDS >> Sqlserver

SQL SERVER - Pochopení toho, jak funguje MIN(text).

Je určeno kolaudací (pořadí řazení). Pro většinu kultur je pořadí řazení stejné jako abecední pořadí v anglické abecedě, takže:

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

Proto je „AA“ minimální hodnotou. Pro jiné kultury to nemusí platit. Například dánské řazení by vrátilo 'AB' jako minimum, protože 'AA'> 'AB'. Je to proto, že „AA“ je považováno za ekvivalent „Å“, což je poslední písmeno v dánské abecedě.

SELECT MIN(s COLLATE Danish_Norwegian_CI_AS) FROM table1;

min_s
AB

Chcete-li získat "běžné" řazení, použijte Latin1_General_Bin řazení:

SELECT MIN(s COLLATE Latin1_General_Bin) FROM table1;

min_s
AA

Chcete-li reprodukovat tento výsledek, můžete vytvořit tuto testovací tabulku:

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


  1. Zabraňte rekurzivnímu spouštění v PostgreSQL

  2. Proč spuštění tohoto dotazu s EXECUTE IMMEDIATE způsobí jeho selhání?

  3. Seznámení s možnostmi a funkcemi v MariaDB SkySQL

  4. Jak šifrovat data v Oracle pomocí PL SQL