我有一个SQL查询,可以使用此格式返回17个数字
06037-11
我需要在破折号之前添加一个0,所以它是:
060370-11
有一种简单的方法吗?我看过STUFF()作为选项,但我不明白。
修改 我正在使用Teradata
答案 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
答案 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))