SQL Объединение двух столбцов в Select Statement
Если у меня есть столбец, который является Address1 и Address2 в моей базе данных, как мне объединить эти столбцы, чтобы я мог выполнять операции над ним только в моей инструкции select, я все равно оставлю их отдельными в базе данных. Я хотел бы иметь возможность сделать это
WHERE completeaddress LIKE '%searchstring%'
Если finaladdress является комбинацией Address1 и Address2. searchstring будет подобен данным, которые они искали. Так что, если у них есть "123 Center St" в Address1 и "Apt 3B" в Address2, как бы я его выбрал, если searchstring был "Center St 3B" Это возможно с SQL?
Ответы
Ответ 1
Я думаю, что это то, что вы ищете -
select Address1+Address2 as CompleteAddress from YourTable
where Address1+Address2 like '%YourSearchString%'
Чтобы предотвратить создание составного слова при добавлении адреса1 с адресом2, вы можете использовать это -
select Address1 + ' ' + Address2 as CompleteAddress from YourTable
where Address1 + ' ' + Address2 like '%YourSearchString%'
Итак, "123 Center St" и "Apt 3B" не будут "123 Center StApt 3B", но будут "123 Center St Apt 3B".
Ответ 2
В MySQL вы можете использовать:
SELECT CONCAT(Address1, " ", Address2)
WHERE SOUNDEX(CONCAT(Address1, " ", Address2)) = SOUNDEX("Center St 3B")
Функция SOUNDEX
работает аналогично в большинстве систем баз данных, я не могу придумать синтаксис для MSSQL в минуту, но она не будет слишком далеко от выше.
Ответ 3
Если ваши address1 = '123 Center St'
и address2 = 'Apt 3B'
, то даже если вы объедините и выполните LIKE
, вы не можете искать в searchstring как 'Center St 3B'
. Однако, если ваша searchstring была 'Center St Apt'
, вы можете сделать это, используя -
WHERE (address1 + ' ' + address2) LIKE '%searchstring%'
Ответ 4
Если вы не хотите изменять схему базы данных (и я бы не хотел этого простого запроса), вы можете просто объединить их в фильтр следующим образом: WHERE (Address1 + Address2) LIKE '%searchstring%'
Ответ 5
SELECT StaffId,(Title+''+FirstName+''+LastName) AS FullName
FROM StaffInformation
Где вы пишете в скобках, это будет отображаться в одном столбце.
Где вы хотите, чтобы точка в середине синтаксиса записи названия и имени начиналась ниже,
SELECT StaffId,(Title+'.'+FirstName+''+LastName) AS FullName
FROM StaffInformation
Этот синтаксис работает с MS SQL Server 2008 R2 Express Edition.