查询以查找结尾为' 0000'的邮政编码

时间:2015-06-02 19:57:46

标签: sql-server

我需要找到数据库中以&00; 0000'结尾的所有邮政编码。使用以下查询,我能够返回长度为9位的所有邮政编码。但是,如何添加返回仅返回长度为9位且具有0000的邮政编码?我确信它很简单,但我仍然很难查询。 :)

示例:922340000

Select Addresszipcode
from dbo.CR_MEMBER_AllMemberDetails
where len(Addresszipcode) = 9

3 个答案:

答案 0 :(得分:4)

Select Addresszipcode
from dbo.CR_MEMBER_AllMemberDetails
where len(Addresszipcode) = 9
and Addresszipcode like '%0000'

答案 1 :(得分:4)

SELECT Addresszipcode 
FROM dbo.CR_MEMBER_AllMemberDetails 
WHERE LEN(AddressZipCode)= 9 AND RIGHT(AddressZipCode, 4) = '0000'

答案 2 :(得分:0)

您需要结合使用LEN() functionLIKE operator

SELECT Addresszipcode FROM dbo.CR_MEMBER_AllMemberDetails
WHERE LEN(AddressZipCode)=9 AND AddressZipCode LIKE '%0000'

LEN(AddressZipCode)子句的WHERE部分只返回长度为9的行。 AddressZipCode LIKE '%0000'只会返回以0000结尾的行。使用LIKE运算符时,百分号%充当通配符。从本质上讲,你说" WHERE AddressZipCode从任何东西开始,以0000"结束。

修改

在回复你的评论时,这里是修剪0&#39的SQL:

SELECT CASE WHEN LEN(AddressZipCode)=9 AND AddressZipCode LIKE '%0000' 
            THEN LEFT(AddressZipCode,5) ELSE AddressZipCode END AS AddressZipCode