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

La query Linq non si comporta come previsto

Se il tuo testo ha NVARCHAR controllo del tipo di dati per lettere simili che in realtà non sono le stesse:

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<>demo violino

Qui:'а' !='a' . Uno proviene da Cyrillic 'a' e il secondo è normale.

Idea tratta da:

PS Consiglio vivamente di guardare il discorso di Rob Volk:Revenge: The SQL! .