我正在尝试返回工作日,但我不明白此查询中的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;
有人可以为我解释一下吗?
s(a)
中的s
是提供给 generate_series
返回的集合的表别名,s(a)
中的a
是为其唯一列提供的别名。
请参阅表表达式文档并滚动到"另一种形式的表别名为表的列提供临时名称"以获取完整详细信息。