簡體   English   中英

如何在此sql語句的where子句內使用if語句?

[英]How do I use an if statement inside the where clause in this sql statement?

 select * 
 from mytable
 where (if @key=0 
           pkey>=0
        else
           pkey = @key)

@key是在傳遞到存儲的過程和值pkey是在一列mytable

這個怎么樣:

 select * 
 from mytable
 where ((@key=0 AND pkey>=0) OR (@key<>0 AND pkey = @key))

您可以使用CASE有點像您嘗試使用if ),如下所示。 演示

select * 
from mytable
where pkey = case when @key <> 0 then @key 
                  else Abs(pkey) end

這將為您工作。 通過使用case語句,您可以應用動態過濾器..

select *   
from mytable  
where  1 = case 
             when @key=0 then case when pkey>=0 then 1 else 0 end
             else case when pkey = @key then 1 else 0 end
           end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM