【问题标题】:How to Iterate through table and combine it's result with the value coming from SP如何遍历表并将其结果与来自 SP 的值相结合
【发布时间】:2013-01-16 11:23:36
【问题描述】:

我需要通过以下方式加入两个表

TABLE_A

Id Name 

Table_Ref
RefID --Auto increament

我需要插入 Table_Ref 并将每个插入的 id 与 Table_A 行连接

作为 Id 名称 RefId

我需要游标吗 或者任何基于 Set 的操作都可以让我在 Table_Ref 中插入一个新行,然后像这样返回它

ID    NAME   RefID
xxxx  AAA      1
yyyy  BBB      2

【问题讨论】:

  • 您不能将 Table_Ref 与 Table_A 连接起来,因为它们没有对应的参考列。您想通过哪一列加入这些表?

标签: sql tsqlt


【解决方案1】:

您可以创建序列并将该值插入到表中

create sequence SEQ_TEST
minvalue 1
maxvalue 1000000000
start with 1
increment by 1
order;

要插入表格,请使用以下语法:

Insert into table_a (id, name, refid) values ('xxxx','AAA',SEQ_TEST.nextval);
Insert into table_a (id, name, refid) values ('yyyy','BBB',SEQ_TEST.nextval);

P.S:这是 Oracle 中的语法。不确定 tsql,您可能需要根据需要调整语法。

【讨论】:

  • 我需要在 Table_Ref 中为 Table_A 的每一行插入一行,并将 Table_A 的值与 Table_Ref 中新插入的值一起插入到 Table_B 中。
  • 假设table_ref中已经插入了行,你可以试试这个SELECT id,name,d from (SELECT id,name,rownum rn1 FROM table_a) tbl1, (SELECT d,rownum rn2 FROM table_ref) tbl2 WHERE rn1 = rn2
  • 行尚未插入,我需要插入 TableRef 并获取该 ID 并将其与来自 Tabale_A 的数据一起插入到 Table_B。它是 Table_A 和 Table_B 之间的一种合并。 Table_B 有一个额外的列 RefId,它将来自 TableRef
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多