我需要像
这样的东西if :TARGET like in ('A%', 'B%')
Select x,y from T1
else if :TARGET like in ('C%', 'D%', 'E%')
Select x,z from T2
end
它必须在单个sql查询中,而不是pl / sql块。
信息 - TARGET是用户的输入
所以select :TARGET from dual
会给出需要分析的价值。
答案 0 :(得分:3)
您可以尝试联合查询:
SELECT x, y FROM T1
WHERE :TARGET LIKE 'A%' OR :TARGET LIKE 'B%'
UNION ALL
SELECT x, y FROM t2
WHERE :TARGET LIKE 'C%' OR :TARGET LIKE 'D%' OR :TARGET LIKE 'E%'
感谢两个WHERE
子句中的限制是互斥的,这意味着如果前半部分返回记录,则第二部分不会,反之亦然。
答案 1 :(得分:0)
SELECT X,Case When TARGET LIKE 'A%' OR TARGET LIKE 'B%' Then
Y
WHEN TARGET LIKE 'C%' OR TARGET LIKE 'D%' OR TARGET LIKE 'E%'
THEN Z
End AS 'Y/Z'
From Table1
现场演示