У меня есть строка кода в 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.