sql >> Database >  >> RDS >> Sqlserver

Linq-query gedraagt ​​zich niet zoals verwacht

Als uw tekst NVARCHAR . heeft datatypecontrole op gelijkaardige letters die in werkelijkheid niet hetzelfde zijn:

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' . Een is van Cyrillic 'a' en de tweede is normaal.

Idee afkomstig van:

PS Ik raad ten zeerste aan om Rob Volk's talk:Revenge: The SQL! te bekijken .



  1. Hoe om te gaan met schrikkelseconden in Oracle

  2. Impliceert een Postgres UNIQUE-beperking een index?

  3. PostgreSQL-prestaties benchmarken

  4. MySQL FULLTEXT werkt niet