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

Come fare un GROUP BY con distinzione tra maiuscole e minuscole?

Devi eseguire il cast del testo come binario (o utilizzare regole di confronto con distinzione tra maiuscole e minuscole).

With temp as
(
  select 'Test' as name
  UNION ALL
  select 'TEST'
  UNION ALL
  select 'test'
  UNION ALL
  select 'tester'
  UNION ALL
  select 'tester'
)
Select Name, COUNT(name)
From temp
Group By Name, Cast(name As varbinary(100))

Utilizzo di una raccolta:

Select Name Collate SQL_Latin1_General_CP1_CS_AS, COUNT(name)
From temp
Group By Name Collate SQL_Latin1_General_CP1_CS_AS