【发布时间】:2009-01-12 13:40:37
【问题描述】:
我使用的是 SQL Server 2005。
查询如下所示
Select col1, col2, col3 from <subquery> where (col1,col2) in <subquery>
SQL Server 似乎不喜欢这样。任何人都知道的实现方式不涉及转换为 varchars 或其他任何混乱的东西?
这是实际的查询。
SELECT *
FROM
(
SELECT NEWID() AS guid, UserID, RoleId, ClubId, 0 AS GroupRole
FROM dbo.Portal_UserRoles
UNION
SELECT NEWID() AS guid, dbo.Portal_UserGroups.UserId,
dbo.Portal_GroupRoles.RoleId, dbo.Portal_UserGroups.ClubId,
dbo.Portal_GroupRoles.GroupId AS GroupRole
FROM dbo.Portal_GroupRoles
INNER JOIN dbo.Portal_UserGroups
ON dbo.Portal_GroupRoles.GroupId = dbo.Portal_UserGroups.GroupId
) AS derivedtbl_1
WHERE (derivedtbl_1.RoleId,derivedtbl_1.ClubId) IN
(
SELECT Portal_GroupRoles.RoleId, Portal_ClubGroups.ClubId
FROM Portal_GroupRoles
INNER JOIN Portal_ClubGroups
ON Portal_GroupRoles.GroupId = Portal_ClubGroups.GroupId
)
【问题讨论】:
-
如果您将其格式化为更具可读性,它会帮助人们帮助您。
-
抱歉,不知道该怎么做。
-
很奇怪,这个问题已经获得了将近 3k 的浏览量,却没有一个支持。
标签: sql sql-server sql-server-2005