Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在列中插入一个新值,该新值应为其他列值添加_Sql_Postgresql_Distinct_Sql Insert - Fatal编程技术网

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排。我可以在博士后中给出这个限制吗?还有别的想法吗?