在SQL中使用其他字符更新文本

时间:2015-04-20 09:05:58

标签: sql sql-server character

我有以下值格式:

1234567890

我想将其转换为以下格式: 123-45A67890

表名:测试

列名:MyCode

请注意,我使用的是Microsoft SQL 2012。

3 个答案:

答案 0 :(得分:1)

您可以使用STUFF。像这样的东西

DECLARE @v VARCHAR(15) = '1234567890'

SELECT STUFF(STUFF(@v,4,0,'-'),7,0,'A')

您的SELECT

SELECT STUFF(STUFF(MyCode,4,0,'-'),7,0,'A')
 FROM Test

您的UPDATE

UPDATE Test
SET MyCode = STUFF(STUFF(MyCode,4,0,'-'),7,0,'A')

答案 1 :(得分:0)

SQL Server是否支持PASTE功能?

paste(paste('1234567890',7,0,'A'),4,0,'-')

例如:

select paste(paste(column_name,7,0,'A'),4,0,'-') from table_name

update table_name set column_name = paste(paste(column_name,7,0,'A'),4,0,'-')

答案 2 :(得分:0)

这里尝试使用变量@a

declare @a varchar(100)='1234567890'

select STUFF(STUFF(@a,4,0,'-'),7,0,'A') --gives--> '123-45A67890'

可能你可以用它来更新你的表,

  
      
  1. 在第一个第三个字符后添加连字符( - ),
  2.   
  3. 添加字母' A'在连字符之后的2个字母之后......
  4.   
update Test set MyCode = STUFF(STUFF(MyCode,7,0,'A'),4,0,'-')

有关STUFF() function in SQL

的更多信息