Вставить пробел после 3 символов (SQL Express) - PullRequest
0 голосов
/ 22 января 2019

Я использую SQL Server Express. У меня есть столбец с почтовыми индексами в формате 12345, и мне нужно добавить пробел после третьего числа, такого как 123 45

Ответы [ 4 ]

0 голосов
/ 22 января 2019

Это сработало.

выберите * ,ДЕЛО когда dbo.test.zip LIKE '[0-9] [0-9] [0-9] [0-9] [0-9]' затем LEFT (dbo.test.zip, 3) + '' + RIGHT (dbo.test.zip, 2) ELSE dbo.test.zip КОНЕЦ из test.zip

0 голосов
/ 22 января 2019

Пара вариантов:

DECLARE @Val VARCHAR(10) = '12345'

SELECT  @Val
,       STUFF(@Val, 4, 0, ' ')
,       CONCAT(LEFT(@Val, 3), ' ', RIGHT(@Val, 2))
,       FORMAT(CONVERT(INT, @Val),'### ##')
0 голосов
/ 22 января 2019

Это сделает это

CREATE TABLE #TBL (Zipcode varchar(50))
INSERT INTO #TBL VALUES ('12345')

SELECT 
Zipcode,
LEFT(Zipcode,3)+' '+RIGHT(Zipcode,LEN(Zipcode)-LEN(LEFT(Zipcode,3))) AS NewzipCode

FROM #TBL;

DROP TABLE #TBL
0 голосов
/ 22 января 2019

Просто используйте FORMAT() функцию

SELECT format(12345,'### ##') AS ZIP

В результате вы получите 123 45

SELECT format(5, '000 00')

В результате вы получите 000 05

Также, если вы хотите 0в качестве заполнителя замените # на 0 в строке форматирования

...