我想运行一个涉及将表连接到手动生成的列表的查询,但是我很难尝试生成手动列表。我有一个例子,我试图在下面做:
SELECT
*
FROM
('29/12/2014', '30/12/2014', '30/12/2014') dates
;
理想情况下,我希望我的输出看起来像:
29/12/2014
30/12/2014
31/12/2014
答案 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中工作。