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

Como o intervalo de caracteres curinga do SQL Server, por exemplo, [A-D], funciona com agrupamento sensível a maiúsculas e minúsculas?


Você precisa de um agrupamento binário conforme indicado em Md. A resposta de Elias Hossain .

A explicação é que os intervalos na sintaxe do padrão funcionam de acordo com as regras de ordem de classificação de agrupamento.

De BOL

Então
;WITH T(C) AS
(
SELECT 'A' UNION ALL
SELECT 'B' UNION ALL
SELECT 'C' UNION ALL
SELECT 'D' UNION ALL
select 'a' union all
select 'b' union all
select 'c' union all
select 'd'
)
SELECT *
FROM T
ORDER BY C COLLATE Latin1_General_CS_AS

Devoluções
C
----
a
A
b
B
c
C
d
D

Portanto, o intervalo A-D exclui a mas inclui as outras 3 letras minúsculas em um CS agrupamento.