найти, если результат запроса найден где-нибудь в столбце - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть столбец со значениями varchar, и мне нужно найти, можно ли найти результат запроса где-либо в этом столбце. Например, столбец varchar может иметь следующие значения:

  • abc100
  • 00100
  • 100
  • 200

и запрос на выборку может иметь следующие результаты:

  • 100
  • 200

Мне нужно вернуть все значения в столбце varchar, которые имеют значение «100» или «200» в любом месте. В этом случае все результаты в столбце varchar должны быть возвращены.

Это то, что у меня сейчас есть:

select varcharColumn from table where varcharColumn like (select query)

Когда я пытаюсь выполнить этот запрос, я получаю следующую ошибку:

"Результатом скалярной полной выборки, оператора SELECT INTO или оператора VALUES INTO является более одной строки"

Как мне получить этот запрос, чтобы он возвращал список столбца varchar, где любая его часть содержит результат запроса select?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Вы можете использовать что-то вроде этого

select a.* from testtable1 a, testtable2           
where varcharColumn   like '%'||testtable2.subqueryCOl||'%' 

Это будет соответствовать всем записям с 100, 200. Вы можете запросить свой подзапрос как testtable2, если вам это нужно

0 голосов
/ 27 апреля 2018

A like может сравнивать только две строки. Один из многих способов сравнения нескольких строк - это подзапрос exists, например:

select  varcharColumn 
from    table t1
where   exists
        (
        select  *
        from    <your other table> t2
        where   t1.varcharColumn like concat('%', t2.varcharColumn, '%')
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...