sql >> Base de Datos >  >> RDS >> Sqlserver

La consulta de Linq no se comporta como se esperaba

Si su texto tiene NVARCHAR verifique el tipo de datos para letras similares que en realidad no son las mismas:

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<>demostración de violín

Aquí:'а' !='a' . Uno es de Cyrillic 'a' y el segundo es normal.

Idea extraída de:

PD Recomiendo encarecidamente ver la charla de Rob Volk:Revenge: The SQL! .