我在数据库中输入了大量的序列号,但是人们已经在随机位置用空格键入它们,或者没有空格。
正确的语法是" 123456 123456 1234 1234"。
我怎么能像那样格式化它们?
我已经这样做了以删除所有空格:
REPLACE(Serial, ' ', '')
但现在我需要把它们放回正确的地方。
感谢。
答案 0 :(得分:0)
如果您已经删除了空格,这似乎对我在MS SQL中起作用:
declare @serial varchar(255) = '12345612345612341234';
set @serial = substring(@serial, 1, 6) + ' ' + substring(@serial, 7, 6) + ' ' + substring(@serial, 13, 4) + ' ' + substring(@serial, 17, 4)
print (@serial)
结果就是你所经历的:
123456 123456 1234 1234
答案 1 :(得分:0)
如果我理解正确,这将起作用:
STUFF
将空白推到正确的位置试试这个
DECLARE @wrong VARCHAR(100)='1234 56 12 3456 1 234 1234';
SELECT STUFF(STUFF(STUFF(REPLACE(@wrong,' ',''),17,0,' '),13,0,' '),7,0,' ');