Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

La requête Linq ne se comporte pas comme prévu

Si votre texte contient NVARCHAR vérification du type de données pour les lettres similaires qui en réalité ne sont pas les mêmes :

CREATE TABLE #employee (ID INT IDENTITY(1,1), EmployeeName NVARCHAR(100));

INSERT INTO #employee(EmployeeName) VALUES (N'waidаnde');

SELECT *
FROM #employee
WHERE EmployeeName LIKE '%waidande%';

-- checking
SELECT *
FROM #employee
WHERE CAST(EmployeeName AS VARCHAR(100)) <> EmployeeName;

db<>démo de violon

Ici :'а' !='a' . L'un est en Cyrillic 'a' et le second est normal.

Idée tirée de :

PS Je recommande vivement de regarder le discours de Rob Volk :Revenge: The SQL! .