ido*_*dok 3 teradata union-all
我有一个UNION子句的查询.其中一个字段是普通的硬编码字符串.UNION之后的语句中的字符串被截断以匹配UNION之前的字段的字符串长度.听起来很混乱?这是一个例子.
SELECT 'abc' as xxx
FROM tbl1
UNION ALL
select 'defghi' as xxx
FROM tbl2;
Run Code Online (Sandbox Code Playgroud)
对于上面的查询,我希望输出为
abc
defghi
Run Code Online (Sandbox Code Playgroud)
但是,输出是
abc
def
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑: 解决方法,我知道目前是在UNION之前出现带有较长字符串的SELECT语句.即
SELECT 'defghi' as xxx
FROM tbl2
UNION ALL
select 'abc' as xxx
FROM tbl1;
Run Code Online (Sandbox Code Playgroud)
这会给我预期的输出.但是有更好的选择吗?
采用第一种数据类型,但在这种情况下你可以将它转换为所需的数据类型,如char(6),否则列将保持为char(3)
SELECT CAST('abc' as char(6)) as xxx
FROM tbl1
UNION ALL
select 'defghi' as xxx
FROM tbl2;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5028 次 |
| 最近记录: |