加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何在SQL中使用Where语句Where子句?

发布时间:2020-12-12 16:37:41 所属栏目:MsSql教程 来源:网络整理
导读:我需要使用if语句里面的where子句在sql中. Select * from CustomerWHERE (I.IsClose=@ISClose OR @ISClose is NULL) AND (C.FirstName like '%'+@ClientName+'%' or @ClientName is NULL ) AND if (@Value=2) begin (I.RecurringCharge=@Total or @Total is N
我需要使用if语句里面的where子句在sql中.
Select * from Customer
WHERE  (I.IsClose=@ISClose OR @ISClose is NULL)  
AND    
(C.FirstName like '%'+@ClientName+'%' or @ClientName is NULL )    
AND 
 if (@Value=2)
  begin
  (I.RecurringCharge=@Total  or @Total is NULL )    
  end
 else if(@Value=3)
begin
(I.RecurringCharge like '%'+cast(@Total as varchar(50))+'%' or @Total is NULL )  
end

注意:这不是完整的代码.在SP.I中定义了一切.只需编写需要了解该问题的代码.

提前致谢.

解决方法

你必须使用 CASE Statement/Expression
Select * from Customer
WHERE  (I.IsClose=@ISClose OR @ISClose is NULL)  
AND    
    (C.FirstName like '%'+@ClientName+'%' or @ClientName is NULL )    
AND 
     CASE @Value
         WHEN 2 THEN (CASE I.RecurringCharge WHEN @Total or @Total is NULL) 
         WHEN 3 THEN (CASE WHEN I.RecurringCharge like 
                               '%'+cast(@Total as varchar(50))+'%' 
                     or @Total is NULL )
     END

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读