Я использую SQL Server 2017, и мои параметры сортировки SQL_LATIN1_GENERAL_CP1_CI_AS
и ANSI_PADDING
является значением по умолчанию (ON
).
В моей таблице один из столбцов имеет тип NVARCHAR(255)
и одно из значений вставляется следующим образом (включая пробел):
N'abc '
И когда я ищу его без пробела (N'abc'
), я не хочу получить N'abc '
, но он находитit.
Я знаю, что могу удалить пробелы во время вставки записи, но не могу изменить уже вставленные записи.
Как я могу помешать найти его с помощью таких запросов?
CREATE TABLE #tmp (c1 nvarchar(255))
INSERT INTO #tmp
VALUES (N'abc ')
SELECT *
FROM #tmp
WHERE c1 = N'abc'
DROP TABLE #tmp
Я также нашел эту статью, но хочу предотвратить, когда я запрашиваю ее.
Почему SQL Server автоматически игнорирует пустое место в конце?
Я использую Linq-to-entity с C #, и с помощью SQL-запроса я могу выполнять поиск по ключевому слову LIKE без символа процента
SELECT *
FROM #tmp
WHERE c1 LIKE N'abc'
Но с Linq я не знаю, как написать этозапрос:
entity.Temp.Where(p => p.c1 == "abc");
entity.Temp.Where(p => p.c1.Equals("abc"));
entity.Temp.Where(p => p.c1.Contains("abc"));