我很奇怪为什么选择最小值。我明白min会选择一个集合中最小的数字,并且我明确定义了一个从中拉出来的集合,它主要是我不理解的x(d)
。我无法自己重写代码,因为我真的不明白这些别名在做什么。任何人都可以解释为什么子查询有效吗?
或者甚至只是提供参考?
select (select min(d)
from (values
(convert(date,t.enddate)),
(convert(date,r.enddate)),
(convert(date,e.enddate))
) x(d)) as enddate, t.name
from team t
join roster r on t.personid = r.personid
join enr e on t.personid = e.personid and r.rosterid = e.rosterid
答案 0 :(得分:1)
不确定我理解这个问题。 x(d)
为派生表(values()
部分)提供了x
的名称,以及一个名为d
的输出列。这将以相同的方式工作:
SELECT (SELECT MIN(derived_column_name)
FROM (values(...)
) AS derived_table(derived_column_name)) AS enddate, ...