首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Teradata将char与varchar连接起来

Teradata将char与varchar连接起来
EN

Stack Overflow用户
提问于 2017-02-21 16:09:20
回答 1查看 3.1K关注 0票数 1

我有两个表A和B。我想在A.col_1 = B.col_2上加入A和B,col_1有数据类型VARCHAR(35),col_2有数据类型CHAR(35)。以下语句在连接两个表时造成了问题:没有返回记录,这意味着两个表不能连接。col_1通常有8-11位数字,与col_2一样,我的理解是我使用了"LENGTH(B.col_2 )-1“,但只要col_1和col_2的值相同,尾随空格就不应该是问题。

是什么引起了这个问题?

代码语言:javascript
运行
复制
ON A.col_1 =SUBSTR(B.col_2 ,1,LENGTH(B.col_2 )-1)

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 16:21:24

我想B是半焦。这将解释这里发生的事情:

代码语言:javascript
运行
复制
select char_length(cast('abc' as char(10)));

10

您的substr不使用char字符串的实际长度,而是使用填充长度,因此您将得到原来的字符串减去1空格。

为了解决这个问题-

代码语言:javascript
运行
复制
SUBSTR(B.col_2 ,1,LENGTH(cast(B.col_2 as varchar(35))-1)

代码语言:javascript
运行
复制
SUBSTR(B.col_2 ,1,LENGTH(rtrim(B.col_2)-1)

..。是的,char/varchar对于比较来说并不重要

代码语言:javascript
运行
复制
select 1 where cast('abc' as varchar(10)) = cast('abc' as char(10))

1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42372372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档