SQL将相同的char添加到多个字段中

时间:2014-03-20 14:22:41

标签: sql teradata

我有一个SQL查询,可以使用此格式返回17个数字

  

06037-11

我需要在破折号之前添加一个0,所以它是:

  

060370-11

有一种简单的方法吗?我看过STUFF()作为选项,但我不明白。

修改 我正在使用Teradata

3 个答案:

答案 0 :(得分:1)

Oracle的一种方式:

with qry as
  (select '06037-11' code from dual)
select regexp_replace(code, '-', '0-') from qry;

答案 1 :(得分:0)

因为你谈到STUFF我认为你使用SQL Server:

select stuff(your_column, charindex('-', your_column), 0, '0')
from your_table

SQLFiddle demo

答案 2 :(得分:0)

之前的回复包括使用正则表达式支持的Teradata 14.x示例。以下内容适用于没有正则表达式支持的Teradata 13.x或Teradata 12.x:

SELECT SUBSTRING('06037-11' FROM 1 FOR (POSITION('-' IN '06037-11') -1))
    || '0-'
    || SUBSTRING('06037-11' FROM (POSITION('-' IN '06037-11') + 1))
相关问题