我使用SQL Server 2012,并尝试使用子查询中的名称对以下查询的结果进行排序,但始终会得到SQL执行错误。
我在这里做错了什么或错过了什么?
我的查询:
SELECT A.EmpID,
(SELECT B.EmpID, B.LastName + ', ' + B.FirstName AS TM
FROM dbo.EmpTable AS B
WHERE B.SupEmpID = A.EmpID)
FROM dbo.EmpTable AS A
WHERE A.NTID = 'someID'
ORDER BY B.LastName + ', ' + B.FirstName
答案 0 :(得分:2)
您将在列表中的相关子查询中返回多个列。 这应该给你错误
当选择列表中只能指定一个表达式时 子查询不是用EXISTS引入的。
如何使用连接而不是子查询?
SELECT A.EmpID,
B.LastName + ', ' + B.FirstName AS TM
FROM dbo.EmpTable AS A
INNER JOIN dbo.EmpTable AS B
ON B.SupEmpID = A.EmpID
WHERE A.NTID = 'someID'
ORDER BY B.LastName + ', ' + B.FirstName