如何在Teradata

时间:2016-03-10 07:38:37

标签: teradata

如何检查给定的小数是否有效。我通常做一个像下面这样的case语句来检查列是无效还是NULL,然后将其设置为0,否则按原样执行:

case when decimal_column is NULL or decimal_column NOT BETWEEN -999999999999 AND 999999999999 then 0 else decimal_column end

任何人都可以告诉我上述查询是否正确

由于

2 个答案:

答案 0 :(得分:0)

在Teradata 14.10或更高版本中,可以使用TO_NUMBER()功能。

SELECT TO_NUMBER({decimal column})
  FROM {table};

如果转换为数字失败,TO_NUMBER()将返回NULL。有关更多详细信息,请参阅SQL函数,运算符,表达式和谓词手册。

答案 1 :(得分:0)

您也可以使用trycast。像......这样的东西:

trycast(trim(col1)) as DECIMAL (XX,Y)) 

来自TD-Doku: TRYCAST接受一个字符串并尝试将其强制转换为AS关键字后指定的数据类型(类似于CAST)。如果转换失败,则TRYCAST返回NULL而不是失败。