首页 > 解决方案 > PL SQL CASE WHEN 语句

问题描述

我正在寻找一种方法来编写一个 CASE WHEN 语句,如果任何项目 = 特定条件,则该语句返回一个值。这里有一点背景:

我的交易在每笔交易中都有几种不同的资产,这些资产可能都有不同的供应商与之相关联。我正在将数据聚合到交易级别,并且我希望标记交易中任何资产的供应商与该交易中的客户相同的交易。

因此,如果交易 X 上所有资产中的任何供应商等于交易 X 上的客户,则标记此交易

标签: sqloraclesyntaxcase-when

解决方案


您可以使用exists. 如果没有样本数据和期望的结果,形成整个查询有点棘手,但是像这样:

select t.*,
       (case when exists (select 1 from suppliers s where t.customer = s.supplier)
             then 1 else 0
        end) as flag
from transactions t;

推荐阅读