sql - 在 SQL 查询中使用带有 ON 子句的 Case 语句
问题描述
需要您的帮助来解决以下问题。我正在使用以下查询来获取详细信息。
每当lob
在lob1
andlob2
时,我想加入 ID 列,否则想使用“否”列加入。
SELECT a.column1,b.column1
FROM table1 a
INNER JOIN table2 b
ON a.region=b.region
AND CASE WHEN a.lob IN ('lob1','lob2')
THEN a.id=b.id ELSE a.no=b.no
解决方案
您可以选择 UNION ALL 并将这两个作为两个单独的 SELECT 子句,如下所示:
SELECT a.column1,b.column1
FROM table1 a
INNER JOIN table2 b
ON a.region=b.region
AND a.id=b.id
WHERE a.lob IN ('lob1','lob2')
UNION ALL
SELECT a.column1,b.column1
FROM table1 a
INNER JOIN table2 b
ON a.region=b.region
AND a.no=b.no
WHERE a.lob NOT IN ('lob1','lob2')
推荐阅读
- python - 在 Linux 上使用 Python 打开应用程序并打开其中的内容的脚本?
- javascript - ReactJS 客户端和 ExpressJS 后端应用制作问题
- javascript - Google Drive API:如何在 appDataFolder 中创建文件?
- grafana - Grafana - 如何“组合”两个不同的仪表板(JSON)?
- python - 如何在 Django 中使用 create 插入数据
- r - 如何指定自定义格式化程序函数 gt table grand summary?
- ubuntu - 是否不再可以独立于 Scratch 在 Ubuntu 衍生产品中为 Squeak 进行存储库安装?
- javascript - 获取字符串数组javascript的总和
- java - 如何将字符串从一个索引交换到另一个索引?
- xamarin - 更改 CollectionView 中所选项目的背景颜色不适用于 UWP