如何从空行中插入 SQL?

How to INSERT in SQL from nothing with empty rows?

我有一个 table 没有任何行。当我做 select 1 from table 它 returns 一个空的结果。如何强制 select 包含单个值?

INSERT into table2
select 1 from table2   -- table2 is empty here

如果你想要正好一个值而不考虑table中的行数,你可以使用聚合:

INSERT into table2
    select max(1) from table2 ;

当然,您可以将其表述为:

INSERT into table2
    select 1;

这两个都假定 table2 只有一列,这并不常见。

您可能还想复制所有行,然后选择其中一行。一种方法是:

insert into table2
    select t2.*
    from (values (1)) v(x) left join
         table2 t2
         on 1=1;

这会将 所有 列插入 table。它总是至少插入一行。如果 table2.

中没有行,则该行将具有 NULL

你可以直接使用

INSERT into table2
select 1;