sql 邮政编码 space
sql postcode space
我正在努力做到无论邮政编码有多长,最后 3 个字符前总是有一个 space。有时我会收到邮政编码,而人们只输入了 4 个字符,所以代码如下:
UPDATE [DataTool].[dbo].[EH10414 Summer Events]
SET postcode = CASE WHEN LEN(postcode) = 6 THEN STUFF(postcode, 4, 0, ' ')
WHEN LEN(postcode) = 7 THEN STUFF(postcode, 5, 0, ' ')
END
WHERE CHARINDEX(' ', postcode, 1) = 0
AND LEN(postcode) BETWEEN 6 AND 7
用处不大。我得到了这个网站,它确实有效,但不是我想要的。我对 SQL 很陌生,但在访问中我可以使用这个:
更新为:Left([PostCode],Len([PostCode])-3) & " " & Right([PostCode],3)
这很好用,但我不知道如何将其实现到 SQL。
任何帮助都会很棒 :)
谢谢
您的访问代码将在 SQL 服务器中正常工作:
Left(PostCode, Len(PostCode) - 3) + ' ' + Right(PostCode, 3)
我会先检查 space 不存在:
(case when PostCode like '% ___' then PostCode
else Left(PostCode, Len(PostCode) - 3) + ' ' + Right(PostCode, 3)
end)
将此实现到 SQL 中的一种方法(通过一些小的调整以获得 SQL 服务器的语法正确)是创建一个用户定义的函数,它接受一个输入邮政编码,并返回一个添加了 space 的新版本:
CREATE FUNCTION SpacePostcode ( @inputPostcode VARCHAR(8) )
RETURNS VARCHAR(8)
BEGIN
RETURN Left(@inputPostcode ,Len(@inputPostcode)-3) + ' ' + Right(@inputPostcode,3)
END
GO
然后可以在 select 语句中使用它来格式化输出,例如
SELECT dbo.fnSpacePostcode('EH78PP') AS postCode
或使用
等更新语句更新现有数据
UPDATE myTable
SET PostCode = dbo.fnSpacePostcode(PostCode)
我正在努力做到无论邮政编码有多长,最后 3 个字符前总是有一个 space。有时我会收到邮政编码,而人们只输入了 4 个字符,所以代码如下:
UPDATE [DataTool].[dbo].[EH10414 Summer Events]
SET postcode = CASE WHEN LEN(postcode) = 6 THEN STUFF(postcode, 4, 0, ' ')
WHEN LEN(postcode) = 7 THEN STUFF(postcode, 5, 0, ' ')
END
WHERE CHARINDEX(' ', postcode, 1) = 0
AND LEN(postcode) BETWEEN 6 AND 7
用处不大。我得到了这个网站,它确实有效,但不是我想要的。我对 SQL 很陌生,但在访问中我可以使用这个:
更新为:Left([PostCode],Len([PostCode])-3) & " " & Right([PostCode],3)
这很好用,但我不知道如何将其实现到 SQL。
任何帮助都会很棒 :) 谢谢
您的访问代码将在 SQL 服务器中正常工作:
Left(PostCode, Len(PostCode) - 3) + ' ' + Right(PostCode, 3)
我会先检查 space 不存在:
(case when PostCode like '% ___' then PostCode
else Left(PostCode, Len(PostCode) - 3) + ' ' + Right(PostCode, 3)
end)
将此实现到 SQL 中的一种方法(通过一些小的调整以获得 SQL 服务器的语法正确)是创建一个用户定义的函数,它接受一个输入邮政编码,并返回一个添加了 space 的新版本:
CREATE FUNCTION SpacePostcode ( @inputPostcode VARCHAR(8) )
RETURNS VARCHAR(8)
BEGIN
RETURN Left(@inputPostcode ,Len(@inputPostcode)-3) + ' ' + Right(@inputPostcode,3)
END
GO
然后可以在 select 语句中使用它来格式化输出,例如
SELECT dbo.fnSpacePostcode('EH78PP') AS postCode
或使用
等更新语句更新现有数据UPDATE myTable
SET PostCode = dbo.fnSpacePostcode(PostCode)