Поиск значения в столбце mysql - PullRequest
0 голосов
/ 02 мая 2020

Я ищу строку поиска в столбце sql. Я хочу найти, если (первые 3 символа столбца == 'DO C' и первое слово после / равно 'FILE1') или значение заканчивается на TMP .

case 
when desc like '%TMP' OR (SUBSTRING(desc, 1, 3) =='DOC') then 'F1'
else 'Not found'
end as 't1'

Description

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Я думаю, что вы можете делать то, что вы хотите с like:

select (case when col like 'DOC%/FILE1%' then 'F1' else 'Not Found' end)

Это все стандарт SQL, поэтому он должен работать с любой базой данных.

0 голосов
/ 02 мая 2020

Используйте postgresql оператор сопоставления регулярных выражений ~ (соответствующий раздел Postgresql 12 документов: здесь ):

select "desc"
     , case 
           when "desc" like '%TMP' OR "desc" ~ '^DOC[^/]*/FILE1/'
           then 'F1'
           else 'Not found'
       end as t1
  from (
           select 'DOCument123/FILE1/' "desc"
        union all
           select 'DOCument123/FILE1/' "desc"
        union all
           select 'DOCument123/FILE1/' "desc"
        union all
           select 'TDZVDLS' "desc"
        union all
           select 'TDZVDLSTMP' "desc"
      ) x;    

Включает 2 синтаксические корректировки:

  • desc является зарезервированным sql идентификатором и нуждается в переносе в двойные кавычки для использования в качестве псевдонима столбца.
  • Алис t1 является именем столбца и записывается без заключающие одинарные кавычки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...