sql搜索查询多个可选参数

Dal*_*all 5 sql sql-server search jquery stored-procedures

我正在尝试在我的文档存档系统上为高级搜索页面编写查询.我正在尝试通过多个可选参数进行搜索.我有大约5个参数,可能是空字符串或搜索字符串.我知道我不应该检查每个字符串或空,并为每个组合创建一个单独的存储过程.

编辑:结束使用:

ISNULL(COALESCE(@var, a.col), '') = ISNULL(a.col, '')
Run Code Online (Sandbox Code Playgroud)

edo*_*oft 8

您可以像这样使用COALESCE(或ISNULL):

WHERE COALESCE(@var1, col1) = col1 
AND COALESCE(@var2, col2) = col2 
AND COALESCE(@var3, col3) = col3
Run Code Online (Sandbox Code Playgroud)

  • 如果列值为NULL,则此解决方案将无效,因为您无法以这种方式测试NULL.如果值为NULL,则将过滤掉该行.这不是你想要的. (2认同)

cly*_*lyc 6

我经常这样做:P

WHERE (@var1 IS NULL OR col1 = @var1)
AND (@var2 IS NULL OR col2 = @var2)
Run Code Online (Sandbox Code Playgroud)

...