【问题标题】:What does "s.a" mean in this generate_series() query这个 generate_series() 查询中的“s.a”是什么意思
【发布时间】:2012-09-14 00:15:59
【问题描述】:

我正在尝试返回工作日,但我不理解此查询中的 s.as(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;

谁能帮我解释一下?

【问题讨论】:

    标签: postgresql generate-series


    【解决方案1】:

    s(a) 中的s 是一个表别名,它赋予generate_series 返回的集合,s(a) 中的a 是赋予其唯一列的别名。 p>

    请参阅table expression docs 并滚动至 “另一种形式的表别名为表的列提供临时名称”以获取完整详细信息。

    【讨论】:

    • 为什么我们在第一个子选择中将日期与 s.a 相加?
    • 在尝试理解我在别处找到的样本时,我发现这非常有用。但它缺少包含有用的关键字“表别名”。
    猜你喜欢
    • 2011-05-26
    • 2011-03-12
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    相关资源
    最近更新 更多