如果别名为'x(d)',这意味着什么?

时间:2013-07-29 23:50:56

标签: sql-server sql-server-2008 subquery

我很奇怪为什么选择最小值。我明白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

1 个答案:

答案 0 :(得分:1)

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

SELECT (SELECT MIN(derived_column_name)
  FROM (values(...)
) AS derived_table(derived_column_name)) AS enddate, ...