如何在 sql 中获取行列表和其中的 foreach?
How to fetch a list of rows and foreach in it in sql?
我在 sql 数据库中有一个名为 Click
的 table。这个 table 存储所有的点击。此 table 有一个名为 EntityTypeId
的字段,表示此行用于哪个实体。我想获取一种特殊类型的点击并将它们存储在另一个 table 中。所以我应该从 Click
table select 它们插入到 PriceClick
table.
这是 Click
table 条记录:
ClickId | EntityTypeId
------------------------
1 1
2 2
3 2
4 3
这是 Click
table 和 PriceClick
table 所需的行:
Price
:
ClickId | EntityTypeId
------------------------
1 1
4 3
PriceClick
:
ClickId | EntityTypeId
------------------------
2 2
3 2
如何操作?
如果您没有 DestinationTable,请使用 SELECT INTO
;如果您已经创建了 DestinationTable,请使用 INSERT INTO
作为提到的另一个答案 (@wewesthemenace)
SELECT *
INTO DestinationTable
FROM SourceTable
WHERE ....
使用INSERT INTO
:
INSERT INTO PriceClick(ClickId, EntityTypeId)
SELECT ClickId, EntityTypeId
FROM Click
WHERE EntityTypeId = 2
如果您正在寻找从一个 table 到另一个的批量插入并且您有类似的 table 结构,则不需要使用任何 foreach
或其他循环。
有一种简单的方法可以实现这一目标 -
CREATE TABLE Click (ClickId bigint, EntityTypeId bigint)
INSERT INTO Click VALUES (1,1)
INSERT INTO Click VALUES (2,2)
INSERT INTO Click VALUES (3,2)
INSERT INTO Click VALUES (4,3)
CREATE TABLE PriceClick (ClickId bigint, EntityTypeId bigint)
INSERT INTO PriceClick (ClickId,EntityTypeId)
SELECT ClickId,EntityTypeId
FROM Click WHERE ClickId = 2
CREATE TABLE Price (ClickId bigint, EntityTypeId bigint)
INSERT INTO Price (ClickId,EntityTypeId)
SELECT ClickId,EntityTypeId
FROM Click WHERE ClickId <> 2
请注意 你应该在 main table
中有相同的数据类型定义
我在 sql 数据库中有一个名为 Click
的 table。这个 table 存储所有的点击。此 table 有一个名为 EntityTypeId
的字段,表示此行用于哪个实体。我想获取一种特殊类型的点击并将它们存储在另一个 table 中。所以我应该从 Click
table select 它们插入到 PriceClick
table.
这是 Click
table 条记录:
ClickId | EntityTypeId
------------------------
1 1
2 2
3 2
4 3
这是 Click
table 和 PriceClick
table 所需的行:
Price
:
ClickId | EntityTypeId
------------------------
1 1
4 3
PriceClick
:
ClickId | EntityTypeId
------------------------
2 2
3 2
如何操作?
如果您没有 DestinationTable,请使用 SELECT INTO
;如果您已经创建了 DestinationTable,请使用 INSERT INTO
作为提到的另一个答案 (@wewesthemenace)
SELECT *
INTO DestinationTable
FROM SourceTable
WHERE ....
使用INSERT INTO
:
INSERT INTO PriceClick(ClickId, EntityTypeId)
SELECT ClickId, EntityTypeId
FROM Click
WHERE EntityTypeId = 2
如果您正在寻找从一个 table 到另一个的批量插入并且您有类似的 table 结构,则不需要使用任何 foreach
或其他循环。
有一种简单的方法可以实现这一目标 -
CREATE TABLE Click (ClickId bigint, EntityTypeId bigint)
INSERT INTO Click VALUES (1,1)
INSERT INTO Click VALUES (2,2)
INSERT INTO Click VALUES (3,2)
INSERT INTO Click VALUES (4,3)
CREATE TABLE PriceClick (ClickId bigint, EntityTypeId bigint)
INSERT INTO PriceClick (ClickId,EntityTypeId)
SELECT ClickId,EntityTypeId
FROM Click WHERE ClickId = 2
CREATE TABLE Price (ClickId bigint, EntityTypeId bigint)
INSERT INTO Price (ClickId,EntityTypeId)
SELECT ClickId,EntityTypeId
FROM Click WHERE ClickId <> 2
请注意 你应该在 main table
中有相同的数据类型定义