我想根据数据库表中的多个列搜索街道地址。 例如我想从表结构中“街道名称,城市名称,邮政编码”等如下
Address1 [nvarchar]
Address2 [nvarchar]
CityName [nvarchar]
ZipCode [numeric]
案例1: 用户可以查看:a)街道名称,Washingtone DC,2837 = seachCon 或者:b)洗涤= seachCon 或c)邮政编码= seachCon
查询1:a)其他工作b和c不起作用
Select *from AddressTable
Where seachCon like '%'+streetName+'%' or seachCon like '%'+cityName+'%' or seachCon like '%'+zipCode+'%'
查询2:a)注意到工作,而b)和c)工作
Select *from AddressTable
Where streetName lik '%'+searchCon+'%' or cityName like '%'+searchCon+'%' or zipCode like '%'+searchCon+'
***我希望查询可以使用完整地址或部分
请帮忙
提前致谢
答案 0 :(得分:0)
Declare @Search varchar(150)
Set @Search = 'Wash 2837'
Select Top 100*
From AddressTable
Where Address1+' '+Address2+' '+CityName +' '+ZipCode Like '%'+replace(ltrim(rtrim(@Search)),' ','%')
Order By 1,2,3
这将返回包含WASH和2837(在该序列中)的所有记录。
就个人而言,我会将其放在存储过程或带有@Search参数的udf中。 @Search将在执行前进行转换