輸出應該永遠是這樣的形式:XX.XX.XXXX
強制三位數成兩個最終會壞我猜想,但如果這些都要求:
Declare @YourTable table (s varchar(25))
Insert Into @YourTable values
('13.0.1221.00'),
('11.00.1111'),
('189.256.0000001'),
('7'),
('.19.'),
('13.4.'),
('..11'),
('A..B'),
(null),
('......')
;WITH rs AS (SELECT s, REVERSE('0' + s) AS rs FROM @YourTable)
SELECT REVERSE(LEFT(ISNULL(PARSENAME(rs, 3), '') + '0000', 4) + '.' +
LEFT(ISNULL(PARSENAME(rs, 2), '') + '00' , 2) + '.' +
LEFT(ISNULL(PARSENAME(rs, 1), '') + '00' , 2)), s
FROM rs
結果:
13.00.1221 13.0.1221.00
11.00.1111 11.00.1111
89.56.0001 189.256.0000001
07.00.0000 7
00.19.0000 .19.
13.04.0000 13.4.
00.00.0011 ..11
0A.00.000B A..B
00.00.0000 NULL
00.00.0000 ......
你能發表您的查詢嗎?它出什麼問題了? –
你正在修整,填充,並可能需要別的東西。這應該在應用程序端恕我直言。 – scsimon
你可以在列中顯示更多可能的值嗎? –