Как CONCAT два столбца, а затем использовать объединенную строку в предложении WHERE в SQL? - PullRequest
0 голосов
/ 17 июля 2009

Мне нужно искать в базе данных DB2 строку, которая является объединением двух столбцов. Есть ли способ CONCAT столбцы, а затем использовать объединенную строку в предложении WHERE?

Ответы [ 4 ]

0 голосов
/ 31 июля 2009

Самое простое решение работает, не нужно использовать CONCAT().

 SELECT Col1 || Col2 as MyCol1 
 FROM MY_TABLE
 WHERE Col1 || Col2 = 'searchvalue'

Просто помните, что поиск не будет проиндексирован . Если вы хотите, чтобы он был проиндексирован, вы должны использовать индекс, основанный на функции. Тогда 2 варианта:

  1. Механизм БД поддерживает его (я не думаю, что DB2 поддерживает)
  2. Сделай сам: используй дополнительный индексированный столбец, обновленный через триггеры на INSERT & UPDATE.
0 голосов
/ 17 июля 2009

Что-то вроде

SELECT *, CONCAT(column1, column2) AS s FROM table WHERE column3 = s
0 голосов
/ 18 июля 2009

После небольшого поиска в руководствах IBM я нашел решение, которое работает для меня;

Select
 Col1 || Col2 as MyCol1
Where CONCAT(RTRIM(Col1),(RTRIM(Col2)) = 'searchvalue'

Спасибо за помощь

0 голосов
/ 17 июля 2009

попробуй

select * 
from MyTable
where Col1 concat Col2 = 'MySearchValue'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...