如何同时在两列中添加或插入多行? [复制]

Posted

技术标签:

【中文标题】如何同时在两列中添加或插入多行? [复制]【英文标题】:how do i add or insert multiple rows in two columns, at the same time? [duplicate] 【发布时间】:2017-11-30 03:17:44 【问题描述】:

如何同时在两列中添加或插入多行?我正在尝试这个

insert into Gwish_bal(Account_code,Flag) values (
('10192885','I'),
('10146883','I')
);

它不工作我不断收到 ORA-00907:缺少右括号。我想插入一千个数字并标记它们。我需要的输出是一个看起来像这样的表格

一个

ccount code    flag
800000008        I
800000009        I
....
800100000        I

【问题讨论】:

紧急?我们现在有急事吗? 哈哈,草莓先生,对不起,我的处境很紧张,希望你能理解 请注意,在您的帖子中添加“紧急”字样会将其排在最后。 【参考方案1】:

试试

INSERT INTO Gwish_bal (Account_code, Flag)
VALUES
    ('10192885', 'l'),
    ('10146883', 'l');

【讨论】:

这不是有效的 Oracle 语法。 什么是正确的 oracle 语法【参考方案2】:

您不需要包装列表。

insert into Gwish_bal(Account_code,Flag) values ('10192885','I'), ('10146883','I');

【讨论】:

这不是有效的 Oracle 语法。 你是什么版本的?? 谢谢你我如何正确的语法或打开列表【参考方案3】:

使用this 语法:

INSERT ALL
  INTO Gwish_bal(Account_code,Flag) VALUES ('10192885','I')
  INTO Gwish_bal(Account_code,Flag) VALUES ('10146883','I')
SELECT * FROM dual;

千行:

insert INTO Gwish_bal(Account_code,Flag)
select to_char(level), 'I'
from dual
where level >= 10000
connect by level <= 11000 

【讨论】:

谢谢!!我是新来的。所以假设我想添加一千行帐户代码并标记我将如何处理它 insert into Gwish_bal(Account_code, Flag) select Account_code, Flag from table_with_thousand_rows【参考方案4】:

这应该可以在 oracle 中使用

INSERT ALL 
    INTO Gwish_bal ("Account_code", "Flag")
         VALUES ('10192885', 'l')
    INTO Gwish_bal ("Account_code", "Flag")
         VALUES ('10192885', 'l')
    INTO Gwish_bal ("Account_code", "Flag")
         VALUES  ('10192885', 'l')
 SELECT * FROM dual  ;

【讨论】:

没用,还是谢谢你 欢迎您,我忘记了最后的 SELECT * FROM dual ^^【参考方案5】:

这应该可行:

INSERT ALL
INTO Gwish_bal (Account_code, Flag) VALUES ('10192885', 'l')
INTO Gwish_bal (Account_code, Flag) VALUES ('10146883','I');

但我遇到的更常见的解决方案是:

INSERT INTO Gwish_bal(Account_code,Flag)
SELECT '10192885', 'l' FROM dual
  UNION ALL
SELECT '10146883','I' FROM dual;

【讨论】:

INSERT INTO Gwish_bal(Account_code,Flag) SELECT '10192885', 'l' FROM dual UNION ALL SELECT '10146883','I' FROM dual; INSERT INTO Gwish_bal(Account_code,Flag) SELECT '10192885', 'l' FROM dual UNION ALL SELECT '10146883','I' FROM dual;这个行得通,谢谢你,但有一千行,例如'100000','I' TO '109000','I'。我该怎么做 您可以尝试使用 PL/SQL 表和 FORALL。如果您在数据库之外,请使用带有绑定变量的语句。如果您只想要数据库中的数据,请使用 sqlldr。

以上是关于如何同时在两列中添加或插入多行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用反应在两列或多列中显示地图的结果

如何使用 python 在两列中扩展具有日期范围的数据框?

EXCEL中如何将两列的内容合并到一列中?

如何选择在两列中具有相同值集的行,从而连接第三列中的值?

在 JOIN 中没有同时在两列上使用杜松子酒

SQLAlchemy如何检查值是否在两列中的值之间?