2016-07-31 2 views
0

У меня есть список продуктов с неочищенными описаниями, из которых мне нужно извлечь атрибуты.PostgreSQL: если столбец1 содержит x, y или z, установите столбец2 в x, y или z

т.е.:

'большой (синий) верхней части бака'

«мед WHT. W шорты

т.д.

потребности стать:

 
size color style  gender 
large Blue Tank top 
Medium White Shorts women's 

Список возможных вариаций достаточно долго. Есть ли способ, с помощью Postgres сказать:

Если описание содержит [синий, белый, красный] установите цвет в [возвращенном найдено цвет]

ответ

1

Есть несколько способов. Самым прямым является использование case:

select (case when description like '%blue%' then 'blue' 
      when description like '%white%' then 'white' 
      when description like '%red%' then 'red' 
     end) as color 
+1

«bluenosed дельфин Фредерик Wrathwhite в» будет соответствовать всем трем. – NovaDenizen

+0

Прекрасное спасибо. Я попробую. –

+0

@NovaDenizen. , , Фактически, он будет соответствовать только «синему», потому что «случай» выбирает первый матч. Это достойный комментарий, чтобы спросить OP: что делать, когда есть несколько совпадений. –

Смежные вопросы