如果还有条件在SQL中
这个问题在这里已经有了答案:
一种方法是select
和case
:
select (case when exists (select X from table1 where x = 'value1')
then 1
when exists (select x from table2 where x = 'value2')
then 2
else 0
end) as flag
是否可以用变量来实现:
DECLARE @FLAG INT = 0;
SELECT @FLAG = 1 FROM table1 WHERE x = 'value1'
IF @FLAG = 0
BEGIN
SELECT @FLAG = 2 FROM table2 WHERE x = 'value2'
END
SELECT @FLAG
由于表包含或不包含数据, @FLAG
变量将保存值0,1或2。 如果第一个select不包含数据,则运行第二个,如果没有返回数据,则返回0(默认@FLAG
值)。
这应该工作,虽然它不是一个有效的查询,也不是使用这样的查询的最佳实践。
select
case when exists (select X from table1 where x = 'value1') then 1
when exists (select x from table2 where x = 'value2') then 2
else 0
end;
链接地址: http://www.djcxy.com/p/94345.html
下一篇: Dynamically choose one of two columns based on a third column