【问题标题】:Replacing commas and converting to INT in Teradata with SELECT用 SELECT 在 Teradata 中替换逗号并转换为 INT
【发布时间】:2019-12-26 07:11:01
【问题描述】:

我正在从 Teradata 数据库中检索记录。字段“CUST_NO”是 VARCHAR 类型。如果我使用

SELECT CUST_NO FROM TABLE

输出符合

123,456
321,654

虽然逗号的位置可以变化。我想删除这些逗号,并将值作为 INT 类型返回。我尝试了几种变体

SELECT CAST(REPLACE(CUST_NO,',','') AS INT) AS CUST_NO FROM TABLE

但我遇到了语法错误。谁能解决这个问题?

【问题讨论】:

  • 错误是什么?

标签: sql database syntax teradata


【解决方案1】:

oReplace 替换 stringsoTranslate 适用于 characters

SELECT CAST(oTranslate(CUST_NO,',','') AS INT) AS CUST_NO FROM TABLE

但是没有必要在转换之前删除逗号,Teradata 只是忽略它,因为它可能是数字格式的一部分:

SELECT CAST(CUST_NO AS INT) AS CUST_NO FROM TABLE

【讨论】:

  • 发挥了作用。非常感谢!
【解决方案2】:

请尝试使用:

str_replace(",", "", $number)

【讨论】:

    【解决方案3】:

    Teradata 正在使用oreplace 函数替换字符串中的字符。

    SELECT CAST(oreplace(CUST_NO,',','') AS INTEGER) AS CUST_NO FROM TABLE
    

    【讨论】:

      猜你喜欢
      • 2017-02-25
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多