繁体   English   中英

从 SAS 到 TERADATA 的字符转换

[英]Character conversion from SAS to TERADATA

我最近开始了一份新工作,我正在使用我不太熟悉的工具。 所以我想知道 StackOverFlow 家族是否可以帮助我。

我在 SAS 中有这个串联,但我无法在 TERADATA 上对其进行排序

t1.COD_CZ||PUT(INPUT(t1.CODTC,5.),z4.)||PUT(t1.PROGOPE,z8.) as CODIGO_MCT

我写了这样的东西,但是字符串的长度与 sas 中的结果不一致。

t1.COD_CZ|| cast(cast(t1.CODTC as int) as char(4))|| cast(t1.PROGOPE as char(8)) as CODIGO_MCT

你能温柔地启发我吗? 提前致谢

您必须应用 FORMAT 以获得前导零(连接修剪尾随空格):

t1.COD_CZ||Cast(t1.CODTC AS FORMAT '9(4)')||Cast(t1.PROGOPE AS FORMAT '9(8)')

结果具有固定长度,但它仍然是 VarChar(17)。 如果您需要固定长度,例如用于导出:

CAST(t1.COD_CZ||Cast(t1.CODTC AS FORMAT '9(4)')||Cast(t1.PROGOPE AS FORMAT '9(8)') AS CHAR(17))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM