如何从空行中插入 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;
我有一个 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;