Sql 空间存在或不存在时搜索邮政编码
我正在运行一个sql搜索查询,以查找与邮政编码匹配的记录 假设我有一个邮政编码: “CB4 1AB” 如果数据库有(带空格和不带空格)Sql 空间存在或不存在时搜索邮政编码,sql,Sql,我正在运行一个sql搜索查询,以查找与邮政编码匹配的记录 假设我有一个邮政编码: “CB4 1AB” 如果数据库有(带空格和不带空格) cb41ab cb4 1ab 或者我搜索(有空格和没有空格) cb41ab cb4 1ab 我想让它把唱片带回来 我怎么做 select addr1, addr2, postcode from addresses p where p.postcode LIKE 'cb%' 谢谢您可以尝试以下方法: select addr1, addr2, postc
- cb41ab
- cb4 1ab
- cb41ab
- cb4 1ab
select addr1, addr2, postcode
from addresses p
where p.postcode LIKE 'cb%'
谢谢您可以尝试以下方法:
select addr1, addr2, postcode
from addresses p
where replace(p.postcode, ' ', '') LIKE 'cb41ab'
您可以尝试以下方法:
select addr1, addr2, postcode
from addresses p
where replace(p.postcode, ' ', '') LIKE 'cb41ab'
所以,听起来你要这么做。扩展其他答案:
DECLARE @input VARCHAR(50)
SET @input = 'CB4 1AB'
SELECT addr1, addr2, postcode
FROM addresses p
WHERE REPLACE(p.postcode, ' ', '') = REPLACE(@input, ' ', '')
编辑:我删除了“LIKE”,因为这应该涵盖上述所有情况。所以,听起来你要这么做。扩展其他答案:
DECLARE @input VARCHAR(50)
SET @input = 'CB4 1AB'
SELECT addr1, addr2, postcode
FROM addresses p
WHERE REPLACE(p.postcode, ' ', '') = REPLACE(@input, ' ', '')
编辑:我删除了“LIKE”,因为这应该涵盖上述所有情况。我不清楚这个问题,所以我有多个答案:
a)如果您查找特定的英国邮政编码,请这样做:如“cb4%1ab”。两个版本都将返回(“间隔”和wo.space)。
b)如果您使用像“cb%”这样的值,也不会给您带来任何麻烦。字段将返回值,该值可能包含空格,也可能不包含空格。
c)如果您想查找一个post code,特别是有或没有空格的post code,比如“cb4_1%”,对于没有空格的post codes,比如“cb41%”,或者更好的做法是查找字段大小(6个字符长或7个字符),使长度([fieldname])=6[或7]
d) 用户输入一个邮政编码,您不知道值中是否有空格:我认为需要修改代码,不应该在SQL/Server端进行排序。如果不可能,由其他人添加替换即可。如果在您的情况下“d”和“a”都为真,请使用REPLACE将空格改为“%”,这样无论输入是什么以及在db中存储了什么(字段值有或没有空格),您都将得到结果
最后但并非最不重要的一点,只是一个建议:如果您有机会“统一”字段值,就这样做(将字段最大长度设置为6和/或更新表格并从值中删除空格)
希望这有帮助
[编辑:添加了“d”选项:)]这个问题我不清楚,所以我有多个答案:
a)如果您要查找特定的英国邮政编码,请这样做:如“cb4%1ab”。两个版本都将返回(“间隔”和wo.space)。
b)如果您使用像“cb%”这样的值,也不会给您带来任何麻烦。字段将返回值,该值可能包含空格,也可能不包含空格。
c)如果您想查找一个post code,特别是有或没有空格的post code,比如“cb4_1%”,对于没有空格的post codes,比如“cb41%”,或者更好的做法是查找字段大小(6个字符长或7个字符),使长度([fieldname])=6[或7]
d) 用户输入一个邮政编码,您不知道值中是否有空格:我认为需要修改代码,不应该在SQL/Server端进行排序。如果不可能,由其他人添加替换即可。如果在您的情况下“d”和“a”都为真,请使用REPLACE将空格改为“%”,这样无论输入是什么以及在db中存储了什么(字段值有或没有空格),您都将得到结果
最后但并非最不重要的一点,只是一个建议:如果您有机会“统一”字段值,就这样做(将字段最大长度设置为6和/或更新表格并从值中删除空格)
希望这有帮助
[编辑:添加了“d”选项:)]搜索时是否只替换空格<代码>在何处替换(p.postcode,“”),如“cb%”?除了…,您的输出是什么。。。?将示例输出放在您的帖子中,这样可以避免混淆…搜索时只需替换空格<代码>在何处替换(p.postcode,“”),如“cb%”?除了…,您的输出是什么。。。?将示例输出放在您的帖子中,这样可以避免混淆。。。