繁体   English   中英

如何在Teradata 14.0强制转换时将字符串转换为整数并留空?

[英]How do I cast a string to integer and have blank in case of error in the cast with Teradata 14.0?

基本上,在SELECT语句中,如果文本列中包含有效数字,则结果应转换为整数。 如果它不是一个有效的数字,它应该什么也不显示。

目前,当文本不是有效数字时,投射失败。

在这里的任何帮助将不胜感激。

使用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};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM