我正在尝试返回工作日,但在此查询中我不理解s.a
和s(a)
:
SELECT dia
FROM (
SELECT ('2012-08-01'::date + s.a * '1 day'::interval) AS dia
FROM generate_series(0, '2012-08-31'::date - '2012-08-01'::date, 1) AS s(a)
) foo
WHERE EXTRACT(DOW FROM dia) BETWEEN 1 AND 5
EXCEPT
SELECT feriado_data FROM teste.feriado;
有人可以帮我解释一下吗?
答案 0 :(得分:7)
s
中的{p> s(a)
是表别名,由generate_series
返回的集合提供,而a
中的s(a)
是给别名专栏的别名。
请参阅table expression docs并滚动至 “另一种形式的表别名为表格的列提供临时名称”以获取完整的详细信息。