如何 运行 基于输入变量的不同查询?
How to run different queries based on an input variable?
我必须根据传入变量的值 return 来自单个 table 的不同列。
我试过使用 case 语句,但没有用。有没有办法实现这个逻辑?
select
case
when :var1='A1' then (select variable,value1,value2 from table where variable='A1')
when :var1='A2' then (select variable,value3,value4 from table where variable='A2')
end
from dual;
将 CASE 移至 SELECT:
SELECT someVariable AS VARIABLE_NAME,
CASE someVariable
WHEN 'A1' THEN VALUE1
WHEN 'A2' THEN VALUE3
ELSE NULL
END AS FIRST_VALUE,
CASE someVariable
WHEN 'A1' THEN VALUE3
WHEN 'A2' THEN VALUE4
ELSE NULL
END AS SECOND_VALUE
FROM TABLE
我必须根据传入变量的值 return 来自单个 table 的不同列。
我试过使用 case 语句,但没有用。有没有办法实现这个逻辑?
select
case
when :var1='A1' then (select variable,value1,value2 from table where variable='A1')
when :var1='A2' then (select variable,value3,value4 from table where variable='A2')
end
from dual;
将 CASE 移至 SELECT:
SELECT someVariable AS VARIABLE_NAME,
CASE someVariable
WHEN 'A1' THEN VALUE1
WHEN 'A2' THEN VALUE3
ELSE NULL
END AS FIRST_VALUE,
CASE someVariable
WHEN 'A1' THEN VALUE3
WHEN 'A2' THEN VALUE4
ELSE NULL
END AS SECOND_VALUE
FROM TABLE