atr*_*joe 25 sql sql-server-2005
如果我的数据库中有一个Address1和Address2的列,我如何组合这些列,以便我只能在我的select语句中对它执行操作,我仍然会在数据库中将它们分开.我希望能够做到这一点
WHERE completeaddress LIKE '%searchstring%'
Run Code Online (Sandbox Code Playgroud)
其中completedaddress是Address1和Address2的组合.searchstring就像他们搜索的数据一样.因此,如果他们在Address1中有'123 Center St',在Address2中有'Apt 3B',如果搜索字符串是'Center St 3B',我怎么能选择它?这是否可以用SQL?
pav*_*red 41
我想这就是你要找的 -
select Address1+Address2 as CompleteAddress from YourTable
where Address1+Address2 like '%YourSearchString%'
Run Code Online (Sandbox Code Playgroud)
为了防止在我们使用address2附加address1时创建复合词,您可以使用此 -
select Address1 + ' ' + Address2 as CompleteAddress from YourTable
where Address1 + ' ' + Address2 like '%YourSearchString%'
Run Code Online (Sandbox Code Playgroud)
因此,'123 Center St'和'Apt 3B'将不会是'123 Center StApt 3B',但将是'123 Center St Apt 3B'.
在MySQL中,您可以使用:
SELECT CONCAT(Address1, " ", Address2)
WHERE SOUNDEX(CONCAT(Address1, " ", Address2)) = SOUNDEX("Center St 3B")
Run Code Online (Sandbox Code Playgroud)
该SOUNDEX
函数在大多数数据库系统中的工作方式类似,我不能想到MSSQL的语法,但它离上面的距离不会太远.