22,298
社区成员
发帖
与我相关
我的任务
分享...
while @@rowcount <> 0
begin
...
end
declare @i int
set @i = 1
while(@i<100)
begin
--你的代码
set @i = @i +1
end
SELECT 48 AS A ,'Q00001'AS B,'W1' AS C INTO #TEMP1
UNION ALL
SELECT 49,'K00002','Q1'
SELECT 50 AS A,'K00002' AS B,'Q1' AS C INTO #TEMP2
UNION ALL
SELECT 49,'Q00001','W1'
UNION ALL
SELECT 48,'T00001','E3'
从上面两个表看,#TEMP1,#TEMP2
首先是根据#TEMP2的A列的值找到 #TEMP1,
例: #TEMP2表的A列值48就能找到 #TEMP1表 SELECT 48 AS A ,'Q00001'AS B,'W1' AS C ,
因为 #TEMP1表 SELECT 48 AS A ,'Q00001'AS B,'W1' AS C ,B列的值和C列对应#TEMP2表的A SELECT 49,'Q00001','W1',
而#TEMP2表的A列值49又能找到 #TEMP1表 SELECT 49,
然后#TEMP1表 SELECT 49 AS A ,'K00002'AS B,'Q1' AS C ,B列的值和C列对应#TEMP2表的A SELECT 50,'K00002','Q1',
所以说,#TEMP2表的列表48,其实是包括了#TEMP2的48和49
最后显示结果要求是:
SELECT 48 AS A,'T00001' AS B,'E3' AS C,48 AS ID UNION ALL
SELECT 49,'Q00001','W1',48 AS ID UNION ALL
SELECT 50,'K00002','Q1',48 AS ID