回答

收藏

如果参数为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    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则