我正在尝试返回工作日,但是我不理解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;有人能给我解释一下吗?
发布于 2012-09-21 15:09:30
s in s(a)是给generate_series返回的集合提供的表别名,而s(a)中的a是给它的唯一列提供的别名。
有关详细信息,请参阅表表达式文档并滚动到“表别名的另一种形式给表的列提供临时名称”。
https://stackoverflow.com/questions/12532814
复制相似问题