Я пытаюсь искать элементы, используя предложение where следующим образом:

SELECT *
FROM TABLE
WHERE ITEMID LIKE '%[0-9][abc][0-9]%'

Я пытаюсь получить данные, имеющие itemID с алфавитами только 'a', 'b' или 'c', начиная и заканчивая числом в середине буквенно-цифрового значения. .

Например, '337Z112' не следует извлекать, потому что это не 'a', 'b' или 'c'.

Другой пример - 'edcb9a9b', который следует получить, потому что он содержит '9a9'.

Заранее спасибо!

1
Nicholas Huh 12 Мар 2019 в 02:57

1 ответ

Лучший ответ

В Teradata вам нужно будет использовать REGEXP_SIMILAR() для сравнения снова регулярное выражение:

SELECT *
FROM mytable
WHERE RegExp_Similar(itemid, '.*\d[abc]\d.*', 'i') = 1;

NB: \d - это ярлык для [0-9] (класс символов цифры )

3
dnoeth 12 Мар 2019 в 09:12