Teradata SQL:选择一个文字

时间:2010-06-21 18:55:23

标签: sql literals teradata

我想使用任意数字列表作为select的一种输入。当然,选项A是创建一个仅包含值的临时表(例如,1,2,3)。

我希望你们知道选项> A是什么。

假设语句如下:

select Fx,
XXXXXX as Foo
from MyTable
where MyTest depends on each XXXXXX

因此,如果我能够奇妙地将XXXXXX作为值列表(1,2,3),我会得到一个结果集:

    My val | Foo
    -------+---
       cat | 1
     mouse | 2
cheesecake | 3

同样,我可以从表中获取输入,但如果没有必要,我不愿意。大师,请加入。

TIA。

1 个答案:

答案 0 :(得分:1)

您可能会使用ROW_NUMBER()窗口聚合函数找到成功。

随机顺序

SELECT CALENDAR_DATE
     , ROW_NUMBER()
       OVER (ORDER BY 1)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2010-06-01' AND DATE 
;

OR按列排序

SELECT CALENDAR_DATE
     , ROW_NUMBER()
       OVER (ORDER BY CALENDAR_DATE)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2010-06-01' AND DATE 
;

OR由另一列分区以重新启动序列

SELECT CALENDAR_DATE
     , YEAR_OF_CALENDAR
     , ROW_NUMBER()
       OVER (PARTITION BY YEAR_OF_CALENDAR
             ORDER BY CALENDAR_DATE)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2009-11-01' AND DATE 
;