gpt4 book ai didi

在 UNION ALL 后截断的 Teradata 字符串

转载 作者:行者123 更新时间:2023-12-04 22:45:43 25 4
gpt4 key购买 nike

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

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

对于上述查询,我​​希望输出为
abc
defghi

然而,输出是
abc
def

有什么想法吗?

编辑:
我目前知道的解决方法是让带有较长字符串的 SELECT 语句出现在 UNION 之前。 IE
SELECT 'defghi' as xxx 
FROM tbl2
UNION ALL
select 'abc' as xxx
FROM tbl1;

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

最佳答案

采用第一个数据类型,但在这种情况下,您可以将其转换为所需的数据类型,例如 char(6),否则该列将保留为 char(3)

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

关于在 UNION ALL 后截断的 Teradata 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27159890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com