Удалить символ из столбца на основе условия другого столбца в Redshift sql - PullRequest
0 голосов
/ 06 июня 2018

У меня есть таблица, в которой я хочу сделать следующее: Если col_1 имеет значения "sakc" или "cosc", удалите вхождения символов "_" из этих строк col_2.

Пример:

Учитывая table_1

col_1            col_2

sakc             abc_aw
sakc             asw_12
cosc             absd12
dasd             qwe_32
cosc             dasd_1

Желаемая таблица_1

col_1            col_2

sakc             abcaw
sakc             asw12
cosc             absd12
dasd             qwe_32
cosc             dasd1   

Я пытался использовать что-то вроде:

select case when col_1 in ('sakc', 'cosc') then trim("_" from col_2) end col_2 from table_1;

Но я уверен, что это не такправильный путь и дает мне ошибки.

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете использовать replace()

SELECT  
  col_1
 ,CASE 
    WHEN col_1 in ('sakc', 'cosc') THEN REPLACE(col_2, '_', '')
    ELSE col_2 
  END col2 
FROM table_1;
...