Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Linq-Abfrage verhält sich nicht wie erwartet

Wenn Ihr Text NVARCHAR enthält Datentypprüfung auf ähnliche Buchstaben, die in Wirklichkeit nicht gleich sind:

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<>Fiddle-Demo

Hier:'а' !='a' . Einer ist aus Cyrillic 'a' und die zweite ist normal.

Idee übernommen von:

P.S. Ich empfehle dringend, sich den Vortrag von Rob Volk anzuschauen:Revenge: The SQL! .