sql - PL SQL CASE WHEN 语句
问题描述
我正在寻找一种方法来编写一个 CASE WHEN 语句,如果任何项目 = 特定条件,则该语句返回一个值。这里有一点背景:
我的交易在每笔交易中都有几种不同的资产,这些资产可能都有不同的供应商与之相关联。我正在将数据聚合到交易级别,并且我希望标记交易中任何资产的供应商与该交易中的客户相同的交易。
因此,如果交易 X 上所有资产中的任何供应商等于交易 X 上的客户,则标记此交易
解决方案
您可以使用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;
推荐阅读
- r - 根据 R 中的逻辑向量过滤嵌套的数据帧列表
- apache-flink - Flink CEP 在比赛中从状态中清除所有先前的事件
- angular - 如何将文件从 angular 10 上传到 asp.net core WebAPI 3.1
- javascript - REACTJS - 如何拥有“良好的设计” - 避免尝试从父级运行子方法
- c# - Xamarin.Forms:应用程序不在页面上显示元素
- apache-kafka - 如何配置 kafka 消费者,以便在自动缩放后获取的消息总数保持不变?
- django - 如何在 django 中间件中处理 POST 数据?
- java - 使用 Java Stream API 按其值过滤地图
- java - 如何在设备android上添加文件访问权限
- sql-server - 为什么 MSSQL 不支持指定为“CREATE DATABASE”语句一部分的“CHARACTER SET”?