我的要求是从复杂查询中获取一个数字并检查 num = desiredNum。
如果它等于desiredNum,那么我必须执行另一组select语句,
有什么方法可以在查询中实现这一点而不是编写函数?
例如:
select case when val =2
then select val1 from table1
else 'false'
from (select val from table)
这可能吗 ??
select case when val=2 then val1 else val end as thevalue
from table1
我假设您的意思是 val 和 val1 都来自同一个表,但是当 val=2 时,使用 val1 代替。如果您实际上有两张表,并且它们都只有一条记录,那么
select
case when val=2
then (select val1 from table1)
else 'false'
end
from table
我不是 100% 我明白你需要什么。但我认为您可以使用联合来执行此操作:
create table theValues ( theValue integer)
create table table1 ( value1 integer)
create table table2 ( value2 integer)
INSERT INTO theValues (thevalue) VALUES (2)
INSERT INTO table1 ( value1 ) VALUES (17)
INSERT INTO table2 ( value2 ) VALUES (8)
SELECT value1 from table1 WHERE EXISTS (SELECT theValue from theValues WHERE theValue != 2)
UNION ALL
SELECT value2 from table2 WHERE EXISTS (SELECT theValue from theValues WHERE theValue = 2)
在这种情况下,“幻数”是 2。如果 theValues 表查询返回 2,那么您从 table2 的结果中获取结果,否则您从表 1 中获取结果。
干杯,丹尼尔