如何在SQL Server中嵌套'order by'?

时间:2014-12-16 08:52:06

标签: sql sql-server select stored-procedures sql-order-by

我使用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

1 个答案:

答案 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