如何在使用Teradata 14.0进行强制转换时出现错误,如何将字符串转换为整数并且为空?

时间:2014-06-12 11:03:50

标签: sql casting teradata

基本上,在SELECT语句中,如果文本列中包含有效数字,则应该将结果转换为整数。如果它不是有效数字,它应该只显示空白/空白。

现在,当文本不是有效数字时,强制转换失败。

我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用Teradata 14,您可以利用正则表达式来嗅出嵌入的字符数据。

SELECT CASE WHEN REGEXP_INSTR('ABC123', '[A-Za-z_]') > 0 
       THEN 1 
       ELSE 0 
       END;

更进一步,您可以尝试沿着这一行将字母数字值替换为NULL:

SELECT CAST((CASE WHEN REGEXP_INSTR({column}, '[A-Za-z_]') > 0 
                  THEN NULL 
                  ELSE {column} 
             END) AS SMALLINT
  FROM {MyDB}.{MyTable};