【发布时间】:2011-10-13 15:09:30
【问题描述】:
我在 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 的理解。
【问题讨论】:
标签: sql regex oracle10g teradata plsqldeveloper