1

我想知道为什么这会选择最小值。我知道 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
4

1 回答 1

1

不确定我是否理解这个问题。是x(d)给派生表(它是values()部分)一个名称x,以及一个名为 的输出列d。这将以相同的方式工作:

SELECT (SELECT MIN(derived_column_name)
  FROM (values(...)
) AS derived_table(derived_column_name)) AS enddate, ...
于 2013-07-30T00:12:07.240 回答