我正在创建一个存储过程,它根据查询设置3个变量,我必须返回它们的MAX
值。我想不使用临时表而下面这样做让我Incorrect styntax near ')'
SQL Server:是否有可能在不使用临时表的情况下在SELECT语句中UNION两个表?
SELECT MAX(PermissionID)
FROM (SELECT @ContactPermission As PermissionID UNION ALL
SELECT @GroupPermission As PermissionID)
我也曾尝试
SELECT MAX((SELECT @ContactPermission UNION ALL SELECT @GroupPermission))
错误,我得到的错误Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
我也有尝试绕过变量并在子查询中使用UNION
...
SELECT MAX(PermissionID)
FROM (SELECT PermissionID
FROM PermissionContact
WHERE ContactID = @ContactID
UNION ALL
SELECT PermissionID
FROM PermissionGroup
WHERE GroupID = @GroupID)
这也给出了Incorrect syntax near ')'
任何想法或建议?临时表是我唯一的选择吗?
如此简单和快速...由于一吨,我将在数分钟,所以当标记为答案让我。 – jon3laze
+1也可以使用'SELECT MAX(PermissionID) FROM(VALUES(@ContactPermission, @GroupPermission))T(PermissionID)' –