![](/img/trans.png)
[英]How to use If/Else or Case statement for a checkbox with in a Select Query in SQL
[英]How to use case statement inside an SQL select Query
我需要根據特定條件獲取所選查詢的輸出
意味着if(id=uid)
然后我需要以下查詢
select * from table1 where id=5;
否則我需要下面的一個
select * from table1 where id=10
我知道我可以使用if條件。 但是我的查詢很長,所以當我使用if else時它看起來就像
if(@id=@uid)
begin
select * from table1 where id=5;// query 1
end
else
select * from table1 where id=10;//query 2
但在這里我需要再次替換整個查詢進行單次檢查。 我希望我可以這樣做:
declare @id int=4;
declare @uid=10;
select * from table1 where
case
when @id=@uid
then
id=5
else
id=10;
end
更新用
我還需要一個條件
在這種情況下,id = 5,uid = 10
then if(id=uid)
然后
select * from table1 where id=5
和
if(id!=uid)
然后
select * from table1
這樣的事情
您可以使用case
表達式返回值id
應該等於:
SELECT *
FROM table1
WHERE id = CASE WHEN @id = @uid THEN 5 ELSE 10 END;
編輯:
問題中更新的要求是在@id != @uid
時返回所有行。 這可以通過比較id
到id
來完成:
SELECT *
FROM table1
WHERE id = CASE WHEN @id = @uid THEN 5 ELSE id END;
或者,使用此更新的要求,簡單or
表達式可能更容易使用:
SELECT *
FROM table1
WHERE @id = @uid OR id = 5;
SELECT
*
FROM
table1
WHERE
(
@id = @uid
AND
id =5
)
OR
(
not @id = @uid
AND
id=10
)
SELECT * FROM table1
WHERE (id=5 AND @id=@uid) OR (id=10 AND @id<>@uid)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.