Sql 结合不同的格表达式语法

Sql 结合不同的格表达式语法,sql,oracle,Sql,Oracle,我对案例表达式的理解您可以使用它进行匹配: 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 som

我对案例表达式的理解您可以使用它进行匹配:

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

你不能把它们结合起来。当时,一个期望在
之后有一个值,另一个期望在条件之后有一个值


尝试将它们组合在一起会产生一个期望值的条件。

尝试一下,然后找出答案?老实说,我不认为这样做有什么好处——只是看起来更令人困惑。当btt\u display='COL'和bd\u trans\u date=bd\u posted\u date
时,只需按照
的情况执行即可。。。这样做的目的是非常清楚的,而且实际上不再需要编写代码了。老实说,我不知道混合动力车是否能用(我强烈感觉它不会用),但说真的,你已经写好了,只需F5,而不是问互联网……COL应该代表什么?CASE使用布尔比较,而这不是一个比较。@JacobH
'COL'
只是他的示例中的
btt\u display
的值我现在看到了。我认为这两种方法结合起来行不通。我在尝试这种混合时遇到语法错误。它也以OR子句失败。只要使用@Siyual语法,就有两个条件。
CASE column WHEN value
CASE WHEN condition