У меня есть строка кода в Oracle, и мне пришлось преобразовать ее в Teradata.
Запрос Oracle:
/* add to avoid invalid number due to junk in column */
AND regexp_instr(table.column, ''[^[:digit:]]'', 1, 1) = 0
Код, который я написал в Teradata
AND (CASE WHEN (POSITION('' '' IN TRIM(table.column)) > 0) OR (UPPER(TRIM(table.column))
(CASESPECIFIC) <> LOWER(TRIM(table.column)) (CASESPECIFIC))
THEN 1 ELSE 0 end ) = 0
Столбец определен как VARCHAR(20)
, но я хочу выбрать только те строки, в которых все данные являются числовыми. Я не могу проверить запрос Teradata, так как это очень длительный запрос, и у меня нет доступа к созданию таблиц, или, скорее, я не могу проверить вывод в базу данных, которую я имею. Я как-то пытался, и похоже, что это работает, но я однажды хотел проверить синтаксис и мое понимание REGEXP_INSTR.