美文网首页我爱编程
oracle在sql中判断字段值是数字还是字符串

oracle在sql中判断字段值是数字还是字符串

作者: GuangHui | 来源:发表于2017-09-22 18:30 被阅读349次
    1. oracle在sql中判断字段值是数字还是字符串:
    SELECT nvl2(TRANSLATE('123','/1234567890','/'),'CHAR','NUMBER') FROM dual;
    
    验证是数字的场景 验证是字符串的场景
    2. 延伸应用:判断字段中包括哪几种类型
    SELECT DISTINCT fuhao 
           FROM (
                    SELECT nvl2(TRANSLATE(MS.STORE_CODE,'/1234567890','/'),'CHAR','NUMBER') fuhao 
                    FROM MC_STORE MS
                 );
    
    判断字段中包括哪几种类型
    3. nvl2与函数介绍

    NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2;

    TRANSLATE(string,from_str,to_str) 的功能:返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。

    如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。

    相关文章

      网友评论

        本文标题:oracle在sql中判断字段值是数字还是字符串

        本文链接:https://www.haomeiwen.com/subject/ougfextx.html