是否可以编写一个 SELECT 语句,它返回零行和零列的数据集?
问问题
2921 次
5 回答
4
一个数据集总是至少有 1 列,即使它不包含数据。
SELECT NULL;
编辑:
正如@eggyal 所指出的,上述语法将返回一个空行。
他的查询select null from dual where false;
不会返回一行。
于 2016-07-26T10:02:57.687 回答
1
这适用于 postgresql:
create table test22 ();
select * from test22;
于 2020-10-01T19:09:30.177 回答
1
在我看来不可能。您将获得至少一列,但没有行。
Select null from yourTable where 1 = 2;
于 2016-07-26T09:56:52.460 回答
0
它通常用于从现有表创建空表
CREATE TABLE NEW_TABLE_NAME AS
SELECT *
FROM EXISTING_TABLE_NAME
where 1=2
于 2016-07-26T11:29:50.870 回答
0
否,但可以返回没有行的查询。为了在不引用任何表的情况下执行此操作,您可以使用子查询:
SELECT NULL FROM (SELECT NULL) AS temp WHERE false;
此查询将有一个(空)列,但没有行。
当在不同情况下存在不同的查询时,我使用了上述构造,然后是循环遍历结果的代码循环,并且在某些情况下您希望使其跳过循环。用上面的查询替换查询是一种返回空结果并因此跳过没有if
块的循环的方法。因为查询不包含表名,所以代码的这方面永远不需要更改,因此我更喜欢WHERE false
在现有查询中添加条件。
我更喜欢这个解决方案而不是更简洁的引用dual
,因为 PostgreSQL 不支持这种结构。此解决方案适用于任何支持子查询的后端。
于 2021-07-02T15:26:41.367 回答