所以我有下表:
Age Name School
22 x ryerson
31 y york
14 z U of T
我想用以下结果编写一个查询:
Age Name School(of the next-youngest person)
22 x U of T
31 y ryerson
14 z null
如何在不创建其他函数或将参数传递给其他函数的情况下编写此查询?我正在使用SQL Server。
答案 0 :(得分:3)
不知道为什么不能使用MAX
。无论如何,这应该做:
SELECT A.Age, A.Name, B.School
FROM YourTable A
OUTER APPLY ( SELECT TOP 1 School
FROM YourTable
WHERE Age < A.Age
ORDER BY Age DESC) B
答案 1 :(得分:1)
您可以使用子查询:
SELECT o.Age, o.Name,
(SELECT TOP 1 c.School
FROM Students c
WHERE c.Age < o.Age
ORDER BY c.Age DESC) as school
FROM Students o