查询数据项的手动列表

时间:2014-12-31 10:42:32

标签: teradata

我想运行一个涉及将表连接到手动生成的列表的查询,但是我很难尝试生成手动列表。我有一个例子,我试图在下面做:

SELECT
    *
FROM
    ('29/12/2014', '30/12/2014', '30/12/2014') dates
;

理想情况下,我希望我的输出看起来像:
29/12/2014
30/12/2014
31/12/2014

2 个答案:

答案 0 :(得分:3)

你的Teradata版本是什么?

在TD14中有STRTOK_SPLIT_TO_TABLE:

SELECT * 
FROM TABLE (STRTOK_SPLIT_TO_TABLE(1 -- any dummy value
                                 ,'29/12/2014,30/12/2014,30/12/2014' -- any delimited string
                                 ,',' -- delimiter
           )
     RETURNS (outkey INTEGER
             ,tokennum INTEGER
             ,token VARCHAR(20) CHARACTER SET UNICODE) -- modify to match the actual size
             ) AS d          

您可以轻松地将其放入派生表中,然后加入其中。

inkey (此处为虚拟值1)是数字或字符串列,通常是键。可用于连接回原始行。

outkey inkey 相同。

tokennum 是输入字符串中令牌的序号位置。

标记是提取的子字符串。

答案 1 :(得分:0)

试试这个:

选择'29 / 12/2014' 联盟 选择'30 / 12/2014' 联盟 ...

它应该在Teradata和MySql中工作。