SQL Case When语句对多个表上的行进行计数
我试图编写一个查询,检查是否填充了多个表,因此我必须检查多个表,如果其中只有一个表有0条记录,那么我必须在输出中返回“否”,否则,如果所有这些表都有0条以上的记录(即1,2,3…条记录),它应该返回“是” 我已经尝试使用:SQL Case When语句对多个表上的行进行计数,sql,oracle,case,oracle12c,Sql,Oracle,Case,Oracle12c,我试图编写一个查询,检查是否填充了多个表,因此我必须检查多个表,如果其中只有一个表有0条记录,那么我必须在输出中返回“否”,否则,如果所有这些表都有0条以上的记录(即1,2,3…条记录),它应该返回“是” 我已经尝试使用: SELECT CASE WHEN (SELECT COUNT(*) FROM LorikSkema.TABLE1) > 0 THEN 'YES' ELSE 'NO' END FROM DUAL; 这似乎只适用于一个表,但我很难根据此逻辑为多个
SELECT
CASE WHEN (SELECT COUNT(*) FROM LorikSkema.TABLE1) > 0 THEN 'YES'
ELSE 'NO'
END FROM DUAL;
这似乎只适用于一个表,但我很难根据此逻辑为多个表找到合适的查询。您可以使用
和
添加对其他表的检查。但我认为使用EXISTS
可能比count(*)
更快
刚刚注意到你的案例陈述需要结束。我试图编辑它,但更改不符合最小字符限制。
SELECT CASE
WHEN EXISTS (SELECT *
FROM table1)
AND EXISTS (SELECT *
FROM table2)
...
AND EXISTS (SELECT *
FROM tablen) THEN
'YES'
ELSE
'NO'
END
FROM dual;