首页 > 解决方案 > 在 CASE 语句中选择 2 个不同的值

问题描述

发生了一种情况,我需要根据是否已付款来显示不同的值。这是问题所在:

我有一张包含不同产品的表格。这些产品会根据是否付费而变化。所以最初我们将这个数据行放在一个表中

NAME    DESCRIPTION    CODE        DELIVERY
John     Paid          BookPaid    Posted

如果我们的一种产品在描述栏中已付款,我们需要查看交付是什么,但如果尚未支付,我们将需要查看交付类型是什么,所以它看起来像这样

NAME    DESCRIPTION    CODE        DELIVERY
John     Pending       Book         Postal

我对此的方法是研究 CASE 语句,但问题是它需要 2 个条件,并且为了节省时间,我不想要多个 CASE 语句选择,例如:

CASE WHEN DESCRIPTION = 'Paid'
     THEN NAME, DESCRIPTION, DELIVERY

本质上说,当它付费使用这个包含基于指定 CASE 条件的匹配信息的数据行时。我对此的逻辑有疑问

标签: sqloracle

解决方案


你不能直接用那种方式。如果需要,请为每列编写手动案例。

例子:

CASE WHEN DESCRIPTION = 'Paid' 
THEN NAME end ,
CASE WHEN DESCRIPTION = 'Paid' 
THEN DESCRIPTION end,
CASE WHEN DESCRIPTION = 'Paid' 
THEN DELIVERY end

推荐阅读