如何修剪teradata表列中的尾随空格

如何修剪teradata表列中的尾随空格,teradata,trim,Teradata,Trim,我想修剪teradata表列的尾随空格 我是这样做的, trim(trailing from dictionary_managed_databases.dbname), create volatile table test ( dbname varchar(128) CHARACTER SET UNICODE ) on commit preserve rows; insert into test values ( 'Database-Name' ); -- you don't need to

我想修剪teradata表列的尾随空格

我是这样做的,

trim(trailing from dictionary_managed_databases.dbname),
create volatile table test ( dbname varchar(128) CHARACTER SET UNICODE ) on commit preserve rows;
insert into test values ( 'Database-Name' );
-- you don't need to trim a varchar column
select dbname || '~'  from test;
(dbname||'~')
---------------------------------------------------------------------------------------------------------------------------------
Database-Name~
-- it is always max length, so not to loose any possible content
select trim(dbname) || '~'  from test;
(Trim(BOTH FROM dbname)||'~')
---------------------------------------------------------------------------------------------------------------------------------
Database-Name~
-- you may cast it to shorten the resulting column
select cast(trim(dbname) as varchar(30)) from test;
Trim(BOTH FROM dbname)
------------------------------
Database-Name
-- it will never be less then the header, even if the content is less
select cast(trim(dbname) as varchar(10)) from test;
Trim(BOTH FROM dbname)
----------------------
Database-N
-- but it will truncate the result
select cast(trim(dbname) as varchar(10)) as dbname from test;
dbname
----------
Database-N
或者直接使用修剪

trim(dictionary_managed_databases.dbname),
但结果表明:

看起来修剪不起作用, 不知道如何在teradata中实现

sel 
dictionary_object_map.moId,
trim(dictionary_managed_databases.dbname)|| '~',
dictionary_deployed_info.dictionaryId,
dictionary_deployed_info.dictionaryName,
dictionary_managed_objects.moname
from dictionary_object_map,
dictionary_deployed_info,
dictionary_managed_objects ,
dictionary_managed_databases
where 
dictionary_object_map.dictionaryId=dictionary_deployed_info.dictionaryId 
and dictionary_object_map.moid=dictionary_managed_objects.moid
and dictionary_managed_databases.moDBId=dictionary_managed_objects.moDBId
and dictionary_managed_databases.dbname = 'customerservice';
结果


不明白为什么字段dbname的输出仍然是这样的,

您确定它不工作吗?我是说。。。你的屏幕截图在单词后没有显示任何空格?为什么你认为它不起作用?@dnoeth在这里坐了8个小时后,我们怎么能在同一秒对它发表几乎相同的评论。。。“我被吓到了。”JNVEVIL:这是魔法:- JNevill有第三列返回,只有在最右边,是隐形的,这就是为什么我认为它修剪后的VARCHAR128可能不工作,它仍然可能是128个字符。BTEQ中的默认输出是一种固定宽度的报告格式。@D是否可以更改?BTEQ主要用于非交互式批处理。如果您想查询数据,最好使用不同的客户端,如SQL Assistant或Teradata Studio或任何第三方。@dnoeth我也使用Teradata Studio,但它不能查询unity存储库,Studio只是一个类似BTEQ的客户端,当您可以使用BTEQ进行查询时,您可以使用Studio进行同样的操作,只需使用相同的用户/连接详细信息即可
trim(trailing from dictionary_managed_databases.dbname),
create volatile table test ( dbname varchar(128) CHARACTER SET UNICODE ) on commit preserve rows;
insert into test values ( 'Database-Name' );
-- you don't need to trim a varchar column
select dbname || '~'  from test;
(dbname||'~')
---------------------------------------------------------------------------------------------------------------------------------
Database-Name~
-- it is always max length, so not to loose any possible content
select trim(dbname) || '~'  from test;
(Trim(BOTH FROM dbname)||'~')
---------------------------------------------------------------------------------------------------------------------------------
Database-Name~
-- you may cast it to shorten the resulting column
select cast(trim(dbname) as varchar(30)) from test;
Trim(BOTH FROM dbname)
------------------------------
Database-Name
-- it will never be less then the header, even if the content is less
select cast(trim(dbname) as varchar(10)) from test;
Trim(BOTH FROM dbname)
----------------------
Database-N
-- but it will truncate the result
select cast(trim(dbname) as varchar(10)) as dbname from test;
dbname
----------
Database-N