我的数据集中有这样的查询(数据库位于 .mdf 文件中):
SELECT *
FROM TableName
WHERE SomeField LIKE @Param
表 TableName
在 SomeField
字段中包含记录 Значение
。
当 @Param
为 Значени%
时它工作完美,但当 @Param
为 Значен%
或 Значе%
,它返回 0 行。 Значе%%%
也有效。
为什么“%”用作单字符通配符?
最佳答案
你的问题是你应该使用 NVARCHAR 的@param,而不是 NCHAR
declare @Param nchar(255)
set @Param = N'Значе%'
这是真的
N'Значе% ...' (many more spaces)
所以它不会匹配你的数据,也就是
N'Значение ...' (padded with spaces)
关于C# 和 SQL LIKE 条件 : '%' works as single-character wildcard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5186128/