UNION ALL后Teradata字符串被截断

时间:2014-11-26 22:19:19

标签: teradata union-all

我有一个带UNION子句的查询。其中一个字段是普通的硬编码字符串。 UNION之后的语句中的字符串被截断以匹配UNION之前的字段的字符串长度。 听起来很混乱?这是一个例子。

SELECT 'abc' as xxx 
FROM tbl1
UNION ALL
select 'defghi' as xxx
FROM tbl2;

对于上面的查询,我希望输出为

abc
defghi

然而,输出是

abc
def

有什么想法?

编辑: 我知道当前的解决方法是在UNION之前出现带有较长字符串的SELECT语句。即

SELECT 'defghi' as xxx 
FROM tbl2
UNION ALL
select 'abc' as xxx
FROM tbl1;

这会给我预期的输出。但是有更好的选择吗?

2 个答案:

答案 0 :(得分:9)

采用第一种数据类型,但在这种情况下你可以将它转换为所需的数据类型,如char(6),否则列将保持为char(3)

SELECT CAST('abc' as char(6)) as xxx 
FROM tbl1
UNION ALL
select 'defghi' as xxx
FROM tbl2;

答案 1 :(得分:0)

最简单的解决方案是设置第一行的数据类型。

#!/bin/bash
nohup python learn.py >> file.log &
相关问题