SELECT id, name FROM pms_assess WHERE parent_id = ( SELECT catalog_id FROM pms_product WHERE id = 1663780757367164929 );如果没有结果则返回parent_id = 0的结果,使用CASE WHEN THEN实现
时间: 2024-02-24 07:57:57 浏览: 71
PMS.rar_ PMS.rar_DMB_PM_PMS_cmmb pms
好的,你想要使用 CASE WHEN THEN 实现查询的需求,根据子查询的结果进行判断,如果有结果返回符合条件的结果,如果没有结果则返回 parent_id = 0 的结果。可以使用以下 SQL 语句实现:
```
SELECT id, name
FROM pms_assess
WHERE parent_id = (
SELECT
CASE
WHEN EXISTS (SELECT id FROM pms_assess WHERE parent_id = (SELECT catalog_id FROM pms_product WHERE id = 1663780757367164929))
THEN (SELECT catalog_id FROM pms_product WHERE id = 1663780757367164929)
ELSE 0
END
)
```
这个 SQL 语句会先执行子查询,查询符合条件的 catalog_id,如果存在则返回 catalog_id,否则返回 0。然后在外层查询中,根据返回的结果作为 parent_id 的条件进行查询,如果存在符合条件的结果则返回,否则返回 parent_id = 0 的结果。
希望这个回答能够解决你的问题。
阅读全文