sql - SQL - 如何在子选择查询中使用父选择的 id
问题描述
我需要使用使用第二个选择的 CASE 语句进行查询,并且在第二个选择中,我需要在 where 子句中使用父选择的 id。
它看起来像这样:
SELECT "OFF_ID" AS "ID_P",
CASE
WHEN
( SELECT "OFF_NUMBER" FROM "OFFER_COPY"
WHERE "OFF_C_ID" = "ID_P" <-- I need to map to the parent ID
) > 0
THEN 'JOHN'
ELSE 'DOE'
END AS "TEST",
FROM "OFFER"
解决方案
您应该始终限定列名,特别是在相关子查询中:
SELECT o."OFF_ID" AS "ID_P",
(CASE WHEN (SELECT oc."OFF_NUMBER"
FROM "OFFER_COPY" oc
WHERE oc."OFF_C_ID" = o."OFF_ID"
) > 0
THEN 'JOHN' ELSE 'DOE'
END) AS "TEST",
FROM "OFFER" o
推荐阅读
- npm - 创建数据库并加载文件(npm stardog)
- python - 使用 Python 在等效图上同时递归
- python - 调用时未使用函数
- lisp - Lisp (Allegro Common Lisp) 如何在 lambda 中使用带有 ' vs #' 的变量
- r - 自定义 R 帮助文件 - 字体着色
- asp.net-core - 如何在 asp.net 核心中创建一个单例服务,其中 Iconfiguration 被传递到其构造函数中
- css - 在 Bootstrap 4 中看不到文本的响应式表格压缩表单字段
- javascript - 单击时平滑滚动到特定部分
- javascript - 使用 Playwright 自动化工具获取当前页面 url?
- python - 4-5 个请求后的 403 状态代码,每个请求之间有超时