Подтвердить что ты не робот

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?

4b9b3361

Ответ 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.