我在 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
该列被定义为 aVARCHAR(20)
但我只想选择数据都是数字的行。我无法验证 Teradata 查询,因为它是一个运行时间很长的查询,而且我无权创建表,或者我无法验证我拥有的数据库上的输出。我有些尝试过,它看起来很有效,但我曾经想验证语法和我对 REGEXP_INSTR 的理解。