格式化序列号以包含空格

时间:2016-09-04 18:25:19

标签: mysql sql

我在数据库中输入了大量的序列号,但是人们已经在随机位置用空格键入它们,或者没有空格。

正确的语法是" 123456 123456 1234 1234"。

我怎么能像那样格式化它们?

我已经这样做了以删除所有空格:

    REPLACE(Serial, ' ', '')

但现在我需要把它们放回正确的地方。

感谢。

2 个答案:

答案 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,' ');