gpt4 book ai didi

sql - Teradata sql 中的零填充

转载 作者:行者123 更新时间:2023-12-02 05:36:56 26 4
gpt4 key购买 nike

表A
id varchar(30)

我正在尝试重新创建一个逻辑,无论 Id 字段的值的实际长度如何,我都必须使用 9 位 Id。
因此,例如,如果 Id 的长度为 6,我将需要在左侧填充 3 个前导零。实际长度可以是 1 到 9 之间的任何值。

任何想法如何在 Teradata SQL 中实现它?

最佳答案

如果实际长度为 1 到 9 个字符,为什么将列定义为 VarCar(30)?

如果它是一个数字列,那就很容易了:

CAST(CAST(numeric_col AS FORMAT '9(9)') AS CHAR(9))

对于字符串,没有类似的 FORMAT,但根据您的版本,您可能有一个 LPAD 函数:
LPAD(string_col, 9, '0')

否则就是:
SUBSTRING('000000000' FROM CHAR_LENGTH(string_col)+1) || string_col,

如果超过九个字符,所有先前的计算都会返回它们。

如果要截断(或 CHAR 而不是 VARCHAR 结果),则必须添加最终 CAST AS CHAR(9)
最后,如果有前导或尾随空格,您可能需要使用 TRIM(string_col)

关于sql - Teradata sql 中的零填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23644046/

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