SQL在Select语句中组合两列

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'.

  • 我希望每个回答这个问题的人都不要把这两个列放在一起 - 你很少想要从地址1中的最后一个单词和地址2中的第一个单词创建一个新的混合单词 - 你可能想在它们之间加一个空格. (6认同)
  • 在sqlite中,+不适用于我|| 做过。 (2认同)

ano*_*ery 8

在MySQL中,您可以使用:

SELECT CONCAT(Address1, " ", Address2)
WHERE SOUNDEX(CONCAT(Address1, " ", Address2)) = SOUNDEX("Center St 3B")
Run Code Online (Sandbox Code Playgroud)

SOUNDEX函数在大多数数据库系统中的工作方式类似,我不能想到MSSQL的语法,但它离上面的距离不会太远.