[英]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.