gpt4 book ai didi

sql - 如何在 SQL 选择查询中使用 case 语句

转载 作者:行者123 更新时间:2023-12-01 07:55:04 25 4
gpt4 key购买 nike

我需要根据某些条件获取选定查询的输出

意思是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;

关于sql - 如何在 SQL 选择查询中使用 case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29794343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com