【问题标题】:How to run different queries based on an input variable?如何根据输入变量运行不同的查询?
【发布时间】:2020-08-30 00:17:00
【问题描述】:

我必须根据传入变量的值从单个表中返回不同的列。

我尝试过使用 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;

【问题讨论】:

    标签: oracle plsql oracle-sqldeveloper


    【解决方案1】:

    将 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 2019-07-13
      • 1970-01-01
      相关资源
      最近更新 更多