C# 和 SQL LIKE 条件 : '%' works as single-character wildcard

标签 c# sql sql-server wildcard sql-like

我的数据集中有这样的查询(数据库位于 .mdf 文件中):

SELECT *
FROM TableName
WHERE SomeField LIKE @Param

TableNameSomeField 字段中包含记录 Значение

@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/

相关文章:

c# - 在 R 中,如何以 yyyymmdd 格式输出 lubridate 兼容日期? .NET 中相当于 .ToString ("yyyyMMdd")?

mysql - 在 MySQL 中使用 join 更新并添加新记录表

sql-server - 更新列问题tsql

sql - 在 PostgreSQL 中查找给定团队的所有匹配项

sql - 在 MS Access 中透视数据

sql-server - [使用 ODBC 的通用连接][Microsoft][ODBC SQL Server 驱动程序]COUNT 字段不正确或语法错误(SQL 状态 : 07001; SQL Code: 0)

sql-server - SQL Server 代理作业中的类别是什么意思?

c# - 在VSTO Excel中,如何检测单元格中的数据?

c# - 将 DateTime 周计算成行

c# - 如何签署 Visual Studio .msi 的安装文件