Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL SERVER - Entendendo como MIN(texto) funciona


É determinado pelo agrupamento (ordem de classificação). Para a maioria das culturas, a ordem de agrupamento é a mesma que a ordem alfabética do alfabeto inglês, portanto:
  • 'AA' <'AB'
  • 'AA' <'AC'
  • 'AB' <'AC'

Portanto, 'AA' é o valor mínimo. Para outras culturas, isso pode não acontecer. Por exemplo, um agrupamento dinamarquês retornaria 'AB' como mínimo porque 'AA'> 'AB'. Isso ocorre porque 'AA' é tratado como equivalente a 'Å', que é a última letra do alfabeto dinamarquês.
SELECT MIN(s COLLATE Danish_Norwegian_CI_AS) FROM table1;

min_s
AB

Para obter uma ordem de classificação "comum", use o Latin1_General_Bin agrupamento:
SELECT MIN(s COLLATE Latin1_General_Bin) FROM table1;

min_s
AA

Para reproduzir este resultado você pode criar esta tabela de teste:
CREATE TABLE table1 (s varchar(100));
INSERT INTO table1 (s) VALUES ('AA'), ('AB'), ('AC');