如何让 cte 函数在雪花中工作?

问题描述 投票:0回答:1
WITH RECURSIVE CalculatedDate AS
(
SELECT LowerBoundDate AS Date
FROM TempDateDimension
UNION ALL

SELECT (Date + INTERVAL '1 DAY')
FROM CalculatedDate
WHERE (Date + INTERVAL '1 DAY') <= UpperBoundDate
)
;
--insert each date to our temporay dimension table
, TempDateDimension AS
(
    SELECT 
        Date AS Date_Key,
        TO_VARCHAR(Date, 'Month DD, YYYY') AS Full_Date_Name,
        MONTH(Date) AS Month_Id,
        TO_VARCHAR(Date, 'Month YYYY') AS Month_Name,
        DATE_PART('QUARTER', Date) AS Quarter_Id,
        CONCAT('Quarter ', DATE_PART('QUARTER', Date), ' ', TO_VARCHAR(Date, 'YYYY')) AS Quarter_Name,
        YEAR(Date) AS Year_Id,
        TO_VARCHAR(Date, 'YYYY') AS Year_Name,
        TO_VARCHAR(Date, 'DAYNAME') AS Day_Name,
        DATE_PART('DOY', Date) AS Day_Of_Year,
        CASE 
            WHEN TO_VARCHAR(Date, 'DAYNAME') = 'Sunday' THEN 0
            WHEN TO_VARCHAR(Date, 'DAYNAME') = 'Saturday' THEN 0
            ELSE 1
        END AS WorkDay
    FROM CalculatedDate
);

期待工作,但一直给我一个“;”错误

sql snowflake-cloud-data-platform common-table-expression
1个回答
0
投票

我不熟悉“snowflake”,但如果错误是使用 cte 的分号,请尝试将分号放在保留字“WITH”之前,分号将用于指定您的 cte 表达式从那里开始

;WITH RECURSIVE CalculatedDate AS ...

© www.soinside.com 2019 - 2024. All rights reserved.