Я использую SQL Server Express. У меня есть столбец с почтовыми индексами в формате 12345, и мне нужно добавить пробел после третьего числа, такого как 123 45
Это сработало.
выберите * ,ДЕЛО когда 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
Пара вариантов:
DECLARE @Val VARCHAR(10) = '12345' SELECT @Val , STUFF(@Val, 4, 0, ' ') , CONCAT(LEFT(@Val, 3), ' ', RIGHT(@Val, 2)) , FORMAT(CONVERT(INT, @Val),'### ##')
Это сделает это
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
Просто используйте FORMAT() функцию
FORMAT()
SELECT format(12345,'### ##') AS ZIP
В результате вы получите 123 45
123 45
SELECT format(5, '000 00')
В результате вы получите 000 05
000 05
Также, если вы хотите 0в качестве заполнителя замените # на 0 в строке форматирования