Есть ли способ выбрать значение из столбца с запятыми? - PullRequest
1 голос
/ 23 марта 2019

Мне было интересно, есть ли способ выбрать из столбца, который имеет значения, разделенные запятыми.

Например, столбец имеет следующие данные: («16», «20», «27», «2», «3»)

Можно ли сделать что-то вроде этого:

- получить значение 16 из таблицы: -

select from table where value = '16'

или, может быть, использовать в?

select from table where value in '16'

Ответы [ 3 ]

1 голос
/ 23 марта 2019

Если столбец value содержит данные с одинарными кавычками , например:

'16', '20', '27', '2', '3'

, то вы можете использовать оператор like:

select * from table where value like '%''16''%'

Если нет одинарных кавычек и данные имеют вид:

16, 20, 27, 2, 3

, тогда:

select * from table 
where ',' || replace(value, ' ', '') || ',' like '%,16,%'

Если между значениями, разделенными запятыми, нет пробеловтогда вам не нужно replace():

select * from table where ',' || value || ',' like '%,16,%'
0 голосов
/ 23 марта 2019

Возможно, схема базы данных нарушает первую нормальную форму

0 голосов
/ 23 марта 2019

Пожалуйста, используйте нижеприведенное, если столбец значения содержит одинарные кавычки sql fiddle здесь

        select * from tt where REGEXP_LIKE(value1,'(''16'',)[^,]+');

если в нем нет одинарных кавычек, используйте ниже sql fiddle здесь

   select * from tt where REGEXP_LIKE(value1,'(16,)[^,]+');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...