首页 > 解决方案 > Teradata SQL - 选择以创建表

问题描述

我试图让这个工作,但不知道如何从 Sybase SQL 传输到 Teradata。

我的 Sybase SQL 代码如下。

SELECT
    d.dt

FROM (
Select CAST (dateadd(day, 0, getdate()) AS DATE) AS dt UNION ALL
Select CAST (dateadd(day,1, getdate()) AS DATE) UNION ALL
Select CAST (dateadd(day,2, getdate()) AS DATE) UNION ALL
Select CAST (dateadd(day,3, getdate()) AS DATE) UNION ALL
Select CAST (dateadd(day,4, getdate()) AS DATE) UNION ALL
Select CAST (dateadd(day,5, getdate()) AS DATE) UNION ALL
Select CAST (dateadd(day,6, getdate()) AS DATE) UNION ALL
Select CAST (dateadd(day,7, getdate()) AS DATE) 
) d

我在 Teradata 中尝试过,但它没有飞行。

SELECT
    d.dt

FROM (
Select CURRENT_DATE AS dt UNION ALL
Select (CURRENT_DATE - 1 )

) d

它适用于今天,但是一旦我添加 UNION ALL 和更多天,它就会给我一个错误(3888)

标签: teradata

解决方案


对我来说,在 Teradata 上执行此操作的最简单方法是使用简单的 1 行 CTE 进行伪造:

with cte as (select '1' as col1)

select
d.dt 
from (
Select CURRENT_DATE AS dt from cte UNION ALL
Select (CURRENT_DATE - 1 ) from cte
) d

推荐阅读