如何仅将列值插入前一千行

Posted

技术标签:

【中文标题】如何仅将列值插入前一千行【英文标题】:How to insert a column value to only first thousand rows 【发布时间】:2019-11-11 11:38:55 【问题描述】:

我有一个名为 GSH 的表,其中值已经存在。

已在“GSH”表中添加了一个名为“GS”的新列。我必须仅为从 GSH 表中选择的前一千行向新添加的列添加值。

如何编写 SQL 查询?

【问题讨论】:

用您正在使用的数据库标记您的问题。 什么定义了“前一千行”? 使用的数据库:Sql ...只想通过使用rownum条件选择前一千行。 @Padmaja ,SQL 是一种查询语言,所有 DBMS 都在使用该名称。因此,请提及您正在使用的 DBMS,例如 Oracle、mysql、MSSQL 等, 另外,请注意database tables are unsorted by nature,因此没有“前 x 行”,除非您可以指定要排序的列。 【参考方案1】:

如果我没看错,您想在列中添加随机 1000 行的数据。 (更新新列的值)

Update GSH
SET GS = 1 -- replace 1 with value that you want to fill it with
WHERE ROWNUM <= 1000;

干杯!!

【讨论】:

如果它解决了您的问题,请接受此答案,以便将此问题标记为已解决 如果这个答案解决了你的问题,那么请accept它,这样你的问题就会被标记为已解决。【参考方案2】:

您可以在下面使用(假设您要选择任意 100 行)

update GSH 
set GS = 'your values logic'
where rowid in (
select rowid 
from GSH
where rownum < 101); 

这是我用来重新创建你的场景的脚本

drop table temp;

create table temp (temp1 varchar2(100));

begin 
for rec in 1..500
loop
insert into temp values('s');
end loop;
commit;

end;
/


alter table temp add  temp2 varchar2(200);

update temp 
set temp2 = 'your values logic'
where rowid in (
select rowid 
from temp
where rownum < 101);

【讨论】:

以上是关于如何仅将列值插入前一千行的主要内容,如果未能解决你的问题,请参考以下文章

JAVA JDBC批处理插入,每一千行提交一次,如果中途失败。怎么办?

将列值转换为日期时间以插入 AccessDB

当插入事件发生时,我可以将列值更新为触发器吗?

如何在Oracle中仅将列用作1行到1行返回pl / sql函数中的参数

如何将列值分隔为列名?

如何将列值一一传递给 SQL 函数?