5

Sql-Server 2008 R2 La intercalación es Chinese_Simplified_Pinyin_100_CI_AS. Cuando usoDos cadenas se comparan igual usando '=' pero fallan en 'como' comparar

select 1 where N'⑦' = N'7' 

de salida es 1, pero cuando cambio el operador like

select 1 where N'⑦' like N'7' 

que nada suele salida.

¿Por qué el operador like actúa de manera extraña? ¿Me he perdido algo?

+0

'N'⑦ 'como N'7%'' y 'N'7 'como N'⑦%' 'ambos arrojan resultados. Informar sobre Connect. No me parece el comportamiento esperado. –

+0

debajo del enlace puede ayudarlo. parece ser un problema conocido https://connect.microsoft.com/SQLServer/feedback/details/703959/search-with-like-not-working-as-expected-with-collation-slovenian-100-ci-as – PraveenVenu

+0

Don 'No veo cómo se relaciona ese problema de conexión (aparte de ser otro problema con 'LIKE') –

Respuesta

1

Parece ser un error. LIKE contra un patrón sin comodines siempre debe devolver lo mismo que devuelve =.

Otros pueden ver este comportamiento mediante la ejecución de la siguiente consulta:

SELECT 
    CASE WHEN N'⑦' COLLATE Chinese_Simplified_Pinyin_100_CI_AS = N'7' THEN 'Y' ELSE 'N' END, 
    CASE WHEN N'⑦' COLLATE Chinese_Simplified_Pinyin_100_CI_AS LIKE N'7' THEN 'Y' ELSE 'N' END 
-- Y N 

veo que reported it on Microsoft Connect.

Cuestiones relacionadas