结合不同的CASE表达式语法

时间:2017-07-28 14:42:48

标签: sql oracle

我对CASE表达式的理解,您可以将其用于匹配:

CASE expression
    WHEN first_option THEN some_value
    WHEN second_option THEN some_other_value
    ELSE default_value
END

并评估条件:

CASE
    WHEN a_value = another_value THEN some_result
    WHEN some_other_condition THEN some_other_result
    ELSE default_value
END

但你可以将两者结合起来:

CASE expression
    WHEN first_option AND a_value = another_value THEN some_result
    WHEN second_option AND some_other_condition THEN some_other_result
    ELSE default value
END

例如,这会有效吗?:

CASE btt_display
    WHEN 'COL' AND bd_trans_date = bd_posted_date THEN 'Y'
    WHEN 'DIS' AND bd_trans_date = bs_posted_date THEN 'Y'
    ELSE 'N'
END as sda_ind

1 个答案:

答案 0 :(得分:1)

您无法将它们组合在一起。一个人希望WHEN之后的,另一个条件

CASE column WHEN value
CASE WHEN condition

尝试组合它们会产生一个预期值的条件。