有没有办法在SQL中对字符串数组进行某种类型的循环?我正在将数据附加到 #T_POLICY,我想使用一个数据库运行查询,并使用另一个数据库运行相同的查询。
前任。
use Staging__4SBI_STG_BG
go
WITH cteEnumerate AS
(
SELECT *
,RN = ROW_NUMBER() OVER (PARTITION BY POLICY_ID ORDER BY LOADDATE DESC)
FROM dbo.STG_POLICY
)
INSERT INTO #T_POLICY
SELECT SOURCE, AGENCY_D, POL_SEQ, POLICY_ID, POL_ENDNUMBER, PRODUCT_ID,
COMPANY_ID
FROM cteEnumerate
WHERE RN = 1
ORDER BY POLICY_ID;
所以我想使用的下一个是使用 Staging__4SBI_STG_TB 而不是 BG,并且有很多其他的要运行。我可以使用这些名称创建一个表并运行它们吗?任何帮助都会很棒。
谢谢
你如何加载表 dbo。STG_POLICY?您可以将列 IsLatestPolicy BIT 添加到表中。
WITH cte AS (SELECT *
,RN = ROW_NUMBER() OVER (PARTITION BY POLICY_ID ORDER BY LOADDATE DESC)
FROM dbo.STG_POLICY
)
UPDATE cte
SET IsLatestPolicy = CASE WHEN RN = 1 THEN 1 ELSE 0 END;
所以每次都可以选择原始表
SELECT SOURCE
, AGENCY_D
, POL_SEQ
, POLICY_ID
, POL_ENDNUMBER
, PRODUCT_ID
, COMPANY_ID
FROM dbo.STG_POLICY
WHERE IsLatestPolicy = 1
因此,无需仅为了启动循环而创建另一个表。