【发布时间】:2014-09-25 03:05:39
【问题描述】:
我有一个临时表,我在其中插入从 SELECT 查询中提取的修改数据。
在这个临时表中,我想将我的行分组为批次,因此我添加了一个名为“BATCH_NUM”的索引 INT 列
我希望实现的想法是这样的(比如我的 SELECT 语句中有 1000 个结果)。
伪代码
Batch Size = 100
Count = 0
For batch size in results set
Insert Into Temp Table (a , b , y , count)
Count++
当前 SQL - 将静态值 1 输入到 BATCH_NUM 列
INSERT INTO TEMP_TABLE
(
ASSET_ID,
PAR_PROM_INTEG_ID,
IGNORE
BATCH_NUM
)
SELECT carelevel.row_id, pstn.PROM_INTEG_ID,
CASE
WHEN promoprod.fabric_cd = 'Disabled'
THEN 'Y'
ELSE 'N'
END
'1'
FROM SIEBEL.S_ASSET carelevel
INNER JOIN SIEBEL.S_ASSET pstn
ON pstn.row_id = carelevel.par_asset_id
INNER JOIN SIEBEl.S_ASSET promotion
ON pstn.prom_integ_id = promotion.integration_id
INNER JOIN SIEBEL.S_PROD_INT prod
ON prod.row_id = carelevel.prod_id
INNER JOIN SIEBEL.S_ORG_EXT bill
ON carelevel.bill_accnt_id = bill.row_id
INNER JOIN SIEBEL.S_INV_PROF invoice
ON bill.row_id = invoice.accnt_id
INNER JOIN SIEBEL.S_PROD_INT promoprod
ON promotion.prod_id = promoprod.row_id
WHERE prod.part_num = 'Testproduct'
但如果 select 语句有 1000 个结果,那么我希望 BATCH_NUM 为每 100 条记录中的 1、2、3、4、5、6、7、8、9、10。
这个可以吗?
【问题讨论】:
-
您只想要第一批 - 或者同时插入以下值作为另一批的一部分? (比如 1-100 => 第 1 批、101-200 => 第 2 批)
-
正确,根据结果集/批次大小递增批次数