从DB2上的case语句设置参数?

时间:2015-11-12 16:54:35

标签: sql db2

我有一个查询,我在哪里做了一个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

正如你所看到的,我有两个来自东方或西方案例的结果,我希望这些是参数。

提前谢谢!

1 个答案:

答案 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 = ?