Как проверить / выбрать, если строка содержит значение из значений столбца таблицы? - PullRequest
0 голосов
/ 07 января 2019

Допустим, у меня есть этот номер 123456789, и у меня есть столбец таблицы, которые имеют различные значения значений, такие как:

TABLE_COLUMN
123
456
555
763

Есть ли способ сделать что-то вроде SELECT * FROM TABLE WHERE 123456789 CONTAINS (значения из этого столбца таблицы).

Ответы [ 3 ]

0 голосов
/ 07 января 2019

Как насчет INSTR?

SQL> with test (tc) as
  2    (select '123' from dual union all
  3     select '456' from dual union all
  4     select '555' from dual union all
  5     select '763' from dual
  6    )
  7  select *
  8  from test
  9  where instr('123456789', tc) > 0;

TC
---
123
456

SQL>
0 голосов
/ 07 января 2019

Вы показываете некоторый псевдокод, но я сомневаюсь, что это то, что вы хотите сделать. Вы показываете "выбрать * из таблицы, где ..." - строка 123456789 в той же таблице, где у вас есть столбец, по которому вы должны проверить? Это звучит странно.

Скорее, я предполагаю, что у вас есть таблица со столбцом значений, по которым вы должны проверить, и «входное» значение (либо одно, либо, возможно, значения в ДРУГОЙ таблице), и вы должны проверить это входное значение по ВСЕМ значения (во ВСЕХ строках) в таблице «test».

Если это так, вы, вероятно, хотите что-то вроде этого ... Я показываю входные данные как переменную связывания, но вы можете легко изменить это для других целей.

select <whatever>
from   <wherever>
where  exists (select * from <table> where instr(:input_string, table_column) > 0)

Если входные данные (или значения, хранящиеся в этом столбце) являются числами, а не строками, вы можете преобразовать в строки, используя TO_CHAR().

0 голосов
/ 07 января 2019

Вы ищете это?

select t.*
from table t
where cast(123456789 as varchar2(255)) like '%' || cast(table_column as varchar2(255)) || '%';

Явные приведения не нужны, но я не фанат неявного преобразования типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...