我有一个查询,我在哪里做了一个case语句,但我需要一个基于case语句结果的参数。
我正在使用DB2,有人可以提供建议吗?
SELECT DRIVER_ID, NAME, DRIVER.USER9 AS PHONE,
CASE WHEN TERMINAL_NUMBER IN ('42','9','75','54','52','40','42','41','6') THEN 'EAST'
WHEN TERMINAL_NUMBER IN ('0','8','43','48','47','2','46','50','4','5','49', '1') THEN 'WEST'
ELSE '' END AS REGION
, DRIVER_TYPE
FROM DRIVER WHERE ACTIVE_IN_DISP = 'True' AND
<PARAMETER WOULD GO HERE>
ORDER BY TERMINAL_NUMBER
WITH UR
正如你所看到的,我有两个来自东方或西方案例的结果,我希望这些是参数。
提前谢谢!
答案 0 :(得分:1)
您可以创建公用表表达式以将case语句的结果用作参数。
主要使用原始的select语句。
with MyCTE as (
SELECT DRIVER_ID, NAME, DRIVER.USER9 AS PHONE,
CASE WHEN TERMINAL_NUMBER IN ('42','9','75','54','52','40','42','41','6') THEN 'EAST'
WHEN TERMINAL_NUMBER IN ('0','8','43','48','47','2','46','50','4','5','49', '1') THEN 'WEST'
ELSE '' END AS REGION
, DRIVER_TYPE
FROM DRIVER WHERE ACTIVE_IN_DISP = 'True'
)
select * from MyCTE where region = ?