在本SQL EXISTS运算符教程中,具有以下语法

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

子查询的SELECT语句中的column_name重要吗?从其他答案看来,似乎使用了一些随意的列名(S).

推荐答案

EXISTS section of Subquery Expressions个文档中:

子查询通常只执行足够长的时间来确定是否至少返回了一行,而不是一直执行到完成.

由于结果仅取决于是否返回任何行以及其中的not on the contents行,因此子查询的输出列表通常并不重要.

它不仅无关紧要,since version 9.4它甚至不一定要在那里:

允许SELECT拥有空的目标列表(汤姆·莱恩)

Demo:

CREATE TABLE table_name AS SELECT 'hello' AS "column_name", 
                                   true   AS "condition"  ;
SELECT column_name
FROM table_name
WHERE EXISTS (SELECT FROM table_name WHERE condition);
<头> <正文>
Column_Name
Hello

Sql相关问答推荐

Oracle中的分层查询

Stack Exchange站点上的最短帖子(按正文长度计算,用户名为原始发帖(SEDE))

有没有办法用SQL编写一条CASE语句,如果列A&>0,那么列B,列C=0

数据库索引:如何使用名称和类别对项目进行最佳索引?

snowflake/SQL嵌套的JSON对象和数组

在SQL中为两个日期之间的每个日期添加行

在查询Oracle SQL中创建替代ID

在SQL中将项分配给容器

SAS proc freq 或 proc sql 获取数据子集和整个数据的频率

从另一个没有公共键的表中获取值来加入

在 Oracle 21c 中透视文本值

如何在 SQL 中将两行(或多行)jsonb 数组合并为一行

如何显示最常引用条目的详细信息

如何将多行的查询结果合并为一行

为什么 Oracle 在一个查询中对同一张表同时执行 TABLE SCAN 和 INDEX UNIQUE SCAN?

有没有一种方法可以将始终遵循序列的单个字段的值组合起来,以创建每个 ID 的所有移动?

SQL/Postgres:按日期和其他属性对相关性能进行分组

Lag() 获取snowflake的值变化

从多个连接返回 1 行到同一个表 - SQL Server

Select 随机行,使得列子组的组合是唯一的