我有以下值格式:
1234567890
我想将其转换为以下格式: 123-45A67890
表名:测试
列名:MyCode
请注意,我使用的是Microsoft SQL 2012。
答案 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'
可能你可以用它来更新你的表,
- 在第一个第三个字符后添加连字符( - ),
- 添加字母' A'在连字符之后的2个字母之后......
醇>
update Test set MyCode = STUFF(STUFF(MyCode,7,0,'A'),4,0,'-')
的更多信息