c# - 使用一个 SQL 命令从 sql 中获取全部或部分结果

标签 c# sql-server tsql

这是我的条件。 表单中有一个文本框,如果您不输入任何内容,它将返回该表中的所有行。如果您输入某些内容,它将返回 Col1 与输入匹配的行。我试着用下面的sql来做。但是有一个问题,这些列允许 Null 值。它不会返回具有 NULL 值的行。有没有办法根据输入返回所有或匹配的行?

更新

我使用 ObjectDataSource 和 ControlParameter 传递参数,当控件输入为空时,ObjectDataSource 会传递一个 DBNULL 给 TSQL 命令。

Col1   Col2   Col3
ABCD   EDFR   NULL
NULL   YUYY   TTTT
NULL   KKKK   DDDD


select * from TABLE where Col1 like Coalesce('%'+@Col1Val+'%',[Col1])

最佳答案

你试过吗

SELECT   * 
FROM     TABLE 
WHERE    COALESCE(Col1, '') LIKE COALESCE ('%'+@Col1Val+'%', [Col1]) 

关于c# - 使用一个 SQL 命令从 sql 中获取全部或部分结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712852/

相关文章:

sql-server - TSQL : Can't concatenate strings in while loop

sql - SQL Server 中的嵌套窗口函数

C# Try/Catch 之后,回到 Foreach 循环?

c# - 如何使用 '&' 在枚举中创建值

c# - 带有 SQL Server 数据库和 Entity Framework 错误的 Windows 应用程序部署

sql-server-2005 - 我需要 T-SQL 中的国家/地区列表

MySQL 查询 : 3 tests passed, 1 失败

c# - 将创建的数据传递给另一个 Controller

c# - 如何将带小数点的字符串解析为 double ?

sql - 使用 where 子句创建索引 - SQL SVR 2005