Sql 在列中插入一个新值,该新值应为其他列值添加
我有一个包含两列的表:Sql 在列中插入一个新值,该新值应为其他列值添加,sql,postgresql,distinct,sql-insert,Sql,Postgresql,Distinct,Sql Insert,我有一个包含两列的表: id field_name 111 A 111 B 111 C 189 A 189 B 189 C 我想在我所有的id中添加一个新的字段名“D”。我的表将有6000多个不同的ID。常规插入不起作用 需要如下输出: id field_name 111 A 111 B 111 C 111 D 189 A 189 B 189 C 189 D 您可以使用in
id field_name
111 A
111 B
111 C
189 A
189 B
189 C
我想在我所有的id中添加一个新的字段名“D”。我的表将有6000多个不同的ID。常规插入不起作用
需要如下输出:
id field_name
111 A
111 B
111 C
111 D
189 A
189 B
189 C
189 D
您可以使用
insert。。。按如下方式选择
:
insert into mytable(id, field_name)
select distinct id, 'D' from mytable
这将为每个id
创建一行,常量值为'D'
作为字段名
如果要避免已经存在的元组(如果有):
insert into mytable(id, field_name)
select distinct id, 'D' from mytable
where not exists (select 1 from mytable t1 where t1.id = t.id and t1.field_name = 'D')
或者,出于同样的目的,您可以对值的元组具有唯一的索引或约束,并对冲突使用
create unique index myidx on mytable(id, field_name);
insert into mytable(id, field_name)
select distinct id, 'D' from mytable
on conflict (id, fieldname) do nothing;
需要在postgres中查询。我有一个查询,将获取3036行。我想从第2400排拿到3036排。我可以在博士后中给出这个限制吗?还有别的想法吗?