Не как в Терадате - PullRequest
       11

Не как в Терадате

0 голосов
/ 08 февраля 2020

Я новичок в Teradata и пытаюсь выяснить, как сделать оператор NOT LIKE с несколькими подстановочными знаками. Я пробовал несколько разных способов, но не нашел способ, который работает. Совсем недавно я попробовал код, приведенный ниже.

    WHERE DIAG_CD NOT IN ALL ('S060%','S340%')

Любая помощь, которую вы можете предоставить, будет высоко оценена.

Спасибо!

Ответы [ 2 ]

1 голос
/ 08 февраля 2020

Вы на правильном пути. Вы можете использовать ЛЮБОЙ / ВСЕ квантификатор с LIKE или NOT LIKE.

WHERE DIAG_CD NOT LIKE ALL ('S060%','S340%')

или

WHERE NOT (DIAG_CD LIKE ANY ('S060%','S340%'))
1 голос
/ 08 февраля 2020

IN не поддерживает подстановочные знаки. Вам необходимо повторить условия:

where diag_cd not like 'S060%' and diag_cd not like 'S340%'

Или вместо этого можно выполнить сопоставление регулярному выражению: ^ представляет начало строки, а | обозначает или . Этот синтаксис легче расширять с помощью большего количества шаблонов строк.

where not regexp_like(diag_cd, '(^S060)|(^S340)')
...