发生一种情况,我需要根据是否已付款来显示不同的值。这是问题所在:
我有一个包含不同产品的表。这些产品根据是否付款而改变。因此,本来我们将在表中保留此数据行
NAME DESCRIPTION CODE DELIVERY
John Paid BookPaid Posted
如果我们的一种产品在“说明”列中已付款,则我们需要查看“交货”是什么,但是如果尚未付款,则需要查看交货类型是什么,因此看起来像这样< / p>
NAME DESCRIPTION CODE DELIVERY
John Pending Book Postal
我的解决方法是研究CASE语句,但问题是它需要2个条件,为了节省时间,我不想选择多个CASE语句,例如:
CASE WHEN DESCRIPTION = 'Paid'
THEN NAME, DESCRIPTION, DELIVERY
基本上说何时付款,该数据行包含基于指定的CASE条件的匹配信息。我对此逻辑感到困惑
答案 0 :(得分:2)
您不能以这种方式直接使用。如果需要,请为每列写手动案例。
示例:
CASE WHEN DESCRIPTION = 'Paid'
THEN NAME end ,
CASE WHEN DESCRIPTION = 'Paid'
THEN DESCRIPTION end,
CASE WHEN DESCRIPTION = 'Paid'
THEN DELIVERY end
答案 1 :(得分:2)
您可以在这样的列选择中使用大小写
select name, description, --common columns
case DESCRIPTION --specific columns
when 'Paid' then DELIVERY
ELSE OTHER_COLUMN END as delivery
from products