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

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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,094评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,771评论 19 139
  • 一. Java基础部分.................................................
    wy_sure阅读 9,279评论 0 11
  • 取穴:后背整背灸,后背痛点和膝盖痛点
    琰妈阅读 3,446评论 0 0
  • 我还在等什么?
    张艳丽阅读 760评论 0 0