У меня есть набор данных в sql, который выглядит следующим образом:
Col1 Col2
13_DND_ 5
_DND_ 6
123_ETL_ 10
ETL_ 12
DND_ 15
_ETL_ 17
Если Col1 содержит _DND_
или _ETL_
, я хочу удалить все слева от DND_
и ETL_
.
Окончательный ожидаемый результат ниже:
Col1 Col2 Col3
13_DND_456 5 DND_456
_DND_de1f 6 DND_de1f
123_ETL_mene 10 ETL_mene
ETL_test 12 ETL_test
DND_se 15 DND_se
_ETL_def_ 17 ETL_def_
Я пробовал ниже для 1 условия, но результат был НЕДЕЙСТВИТЕЛЕН:
SELECT *, CASE WHEN Col1 LIKE '%_DND_%'
THEN RIGHT(Col1, LENGTH(Col1) - CHARINDEX('DND_', Col1)) ELSE Col1 END Col3;