SQL Server 2008 - 更新字段以在第3个字符后添加空格

时间:2013-06-05 17:01:31

标签: sql-server-2008

我有一个名为WellKnown的表,其记录如下: -

ReferenceNo  PlaceName
-----------  ----------------------------------
1860         ALDGATE STN
1861         ALEXANDRA PALACE STN
1862         ALL SAINTS STN
1863         ALPERTON STN

基本上我想更新WellKnown表和SET PlaceName,使其在第3个字符后面有一个空格。结果将是: -

ReferenceNo  PlaceName
-----------  ----------------------------------
1860         ALD GATE STN
1861         ALE XANDRA PALACE STN
1862         ALL SAINTS STN
1863         ALP ERTON STN

知道如何实现这个目标吗?

2 个答案:

答案 0 :(得分:6)

无论您使用什么查询,看起来您希望它不会添加另一个空格。因此下面的WHERE条款:

UPDATE dbo.WellKnown
SET PlaceName = Stuff(PlaceName, 4, 0, ' ')
WHERE Substring(PlaceName, 4, 1) <> ' '
;

See a Live Demo at SQL Fiddle

Stuff function同时在字符串中添加和删除字符。在这种情况下,在PlaceName列中,我们要添加从字符4开始的字符,我们要删除0个字符,并且我们要插入单个空格{{1 }}。 ' '子句将WHERE仅限制为第四个字符不是空格的行。

答案 1 :(得分:1)

使用STUFF()

update wellknown
set placename = stuff(placename, 4, 0, ' ')