Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

A consulta Linq não está se comportando conforme o esperado


Se o seu texto tiver NVARCHAR verificação de tipo de dados para letras semelhantes que na realidade não são as mesmas:
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<>demonstração de violino

Aqui:'а' !='a' . Um é de Cyrillic 'a' e a segunda é normal.

Ideia retirada de:





P.S. Eu recomendo assistir a palestra de Rob Volk:Revenge: The SQL! .