sql - IF EXISTS 和多个 SELECT 语句
问题描述
我对 SQL 比较陌生。
我试图让 SELECT 语句仅在另一个 SELECT 语句返回一些结果时运行。
我写了这样的东西:
DO
$$
BEGIN
IF EXISTS
(SELECT column1, column2 FROM table1 WHERE condition)
THEN
(SELECT column2, column3 FROM table2 WHERE condition);
END IF;
END
$$
我猜这里的问题是“IF EXISTS ... THEN”必须后跟一个表修饰符操作,而不是一个 SELECT 语句。那是对的吗?
当我处理一个相当大的数据集时,目的是仅当第一个语句返回任何内容时才运行第二个语句。
WHERE EXISTS 会是更好的选择吗?
解决方案
你的方法没有错。如果你想要一个查询:
SELECT column2, column3
FROM table2
WHERE condition AND
EXISTS (SELECT column1, column2 FROM table1 WHERE condition);
推荐阅读
- powershell - 协助 Select-Object -Last 1 和文件名
- python - 在 QDock 上具有固定纵横比的 QOpenGLWidget
- html - 防止调整浏览器大小改变 HTML/CSS 布局
- r - 如何按数据框的降序排列我的 ggplot x 轴?
- python - 用普通字母替换特殊的 unicode 字符
- sql - 即使变量/列已经是浮点数据类型,也将数据类型 varchar 转换为浮点数时出错
- android - Gradle 构建任务说 Gradle Wrapper 版本低于 Gradle 属性中定义的版本
- javascript - socketio:客户端没有收到消息
- php - 有没有办法重新加载已经加载的 PHP 类?
- python - 如何等待尚未提交到线程池的 Future?