SQL循环查询
我有一张临时桌子,看起来像 t可接受:SQL循环查询,sql,sql-server,sql-server-2008,sql-server-2005,sql-server-2000,Sql,Sql Server,Sql Server 2008,Sql Server 2005,Sql Server 2000,我有一张临时桌子,看起来像 t可接受: ID(not unique) Platform Name OS version 13 UNIX Ipad 5.1 13 Windows Windows 2008 14 MAC Ipad 4.
ID(not unique) Platform Name OS version
13 UNIX Ipad 5.1
13 Windows Windows 2008
14 MAC Ipad 4.1
查找Tbl:对于上述每一列
PlatformName LookuP Tbl: platform id desc
2 Unix
5 windows
OS Lookup : OS id OSname
4 Ipad
Version Lookup : Version id name
5 5.1
然后有EmpPlatformID、EmpOSID和EmpVersionID,如下所示
EmpPlatform - EmpId PltformNameID
13 1
13 6
same for OS & ID
我需要一个关于
1使用查找表为每个员工ID的每个columnPlatformName、OS、Version获取相应的ID。
2在每个实际表中插入该empid的ID
所以,empPlatformTable应该是这样的
EmpPlatform - EmpId PltformNameID
13 1
13 6
13 2 - new row added from tmptbl
13 5 - new row added from tmptbl
The EmpOS & EmpVer also has similar column so the emp id should have corresponding IDs inserted from temptbl . please helps
编辑:
更新PlatformName的代码
Update EmpPN
Set EmpN.platform_id = PLookup.platform_id
from #TempTable tmpd (READUNCOMMITTED)
inner join EmpPlatform EmpPN (READUNCOMMITTED)
on EmpPN.emp_id = emp_id collate database_default
inner join PlatformLookUpTbl PLookup(READUNCOMMITTED)
on PLookup.[platform_name] = tmpd.PlatformName collate database_default
为什么不呢
Update EmpPN
Set
Platform_ID =
(
Select Top 1 L.Platform_ID From PlatformLookupTbl As L
Inner Join #TempTable As T On L.PlatForm_Name = T.PlatFormName
Where T.Emp_ID = EmpPN.Emp_ID
),
<next field> =
<analogous lookup statement>[,...]
如果性能不好,考虑在你的临时表上创建索引来帮助。
你能发布你迄今为止的代码,并且让我们知道你在哪里有问题吗?我强烈建议当你考虑解决这些问题时,停止思考Word循环。这方面没有任何东西可以通过使用循环以任何方式进行优化。无法获得解决方案。我们可以使用游标吗?@user1681514为什么要使用游标?