SQL REPLACE值基于字符串中的位置

时间:2019-07-08 18:59:02

标签: sql sql-server replace

我有一列,其中所有值均采用这种格式'###-##-#-##-##-###-##-#'我需要将所有值格式化为倒数第二个连字符被句号'###-##-#-#-##-##-###。##-#'

代替

我可以根据字符串中的位置使用REPLACE吗?

例如将“ 068-27-0-40-12-012-00-0”更改为“ 068-27-0-40-12-012.00-0”

3 个答案:

答案 0 :(得分:1)

假设您在sql server中,请使用STUFF方法完成工作。

SELECT STUFF('###-##-#-##-##-###-##-#',19,1,'。');

第一个参数-字符表达 第二个参数-从第n个位置开始 第三个参数-无需替换的职位 第四个参数-要替换的字符串

答案 1 :(得分:0)

大多数数据库支持left()right()(在不支持的数据库中,您可以使用substr() / substring()来达到相同的效果)。所以:

select left(col, 19) || '.' || right(col, 4)

您的数据库可能希望使用其他串联运算符/函数。

答案 2 :(得分:0)

select left([ColumnName], 19) + '.' + right([ColumnName], 4);