如果参数为null,则SQL忽略WHERE的一部分
技术问答
119 人阅读
|
0 人回复
|
2023-09-13
|
我有一个存储过程,可以根据四个参数从表中获取信息。 n5 I* x0 z1 v
我想根据参数获得值,但如果参数是NULL,则不会检查该参数。因此,如果所有4个参数都为null,整个表将显示。, |0 h8 u7 c* y. z
这是我的SP(如你所见,这只适用于一个参数atm):
8 i; N' `1 s1 V& t4 H5 J$ ZCREATE PROCEDURE myProcedure @Param1 nvarchar @Param2 nvarchar @Param3 nvarchar @Param4 nvarchar(50)ASBEGIN IF(@Param1 IS NULL) BEGIN SELECT Id,col1,col2,col3,col4 FROM myTable END ELSE BEGIN SELECT Id,col1,col2,col3,col4 FROM myTable WHERE col1 LIKE @Param ENDEND有什么方法可以做到,而 不必IF添加一个可能的组合(15)IF)?
# V, S7 ]% l+ v: N% P9 y
' q/ v7 ?, R% {5 I/ T6 S 解决方案: |
|
|
|
|
|