【问题标题】:a character string failed conversion to a numeric value字符串转换为数值失败
【发布时间】:2016-01-02 04:49:48
【问题描述】:

我只是想将字母 A 添加到我带回来的结果的开头,并且我不断收到此消息。 查询失败。 3535 字符串转换为数值失败 感谢您的帮助。

select
            a.area_cd  as CO_Area 
            , 'A' +  a.area_cd
 from intDDt.DIXX a

【问题讨论】:

  • 您需要在连接之前将数值转换为 varchar。
  • SELECT ('VarValue' + CAST(32 AS VARCHAR))

标签: teradata


【解决方案1】:

+ 是标准 SQL 和 Teradata 中的数字运算符,不是字符串 concat(如 MS SQL Server 中)。您需要改用||

'A' || TRIM(a.area_cd)

TRIM 会导致自动类型转换。

【讨论】:

  • 如果解决了您的问题,请将答案标记为正确。
【解决方案2】:

请试试这个,

select
         a.area_cd  as CO_Area 
          , ('A' + CAST(a.area_cd AS VARCHAR))
from intDDt.DIXX a

【讨论】:

  • 这在 SQL Server 之外不起作用,因为 + 不是字符串运算符
  • 我收到查询失败 3707 语法错误,预期在 'VARCHAR' 关键字和 ')' 之间出现类似 '(' 的内容
猜你喜欢
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多