Oracle如何实现按身份证号得到省市、性别、年龄

发布时间:2020-07-17 14:51:12

来源:亿速云

阅读:72

作者:小猪

栏目:数据库

小编这次要给大家分享的是Oracle如何实现按身份证号得到省市、性别、年龄,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

1、通过身份证号查询所在省市

SELECT

count(*) as total,

case substr(t.CERTNO,0,2)

when '11' then '北京市'

when '12' then '天津市'

when '13' then '河北省'

when '14' then '山西省'

when '15' then '内蒙古自治区'

when '21' then '辽宁省'

when '22' then '吉林省'

when '23' then '黑龙江省'

when '31' then '上海市'

when '32' then '江苏省'

when '33' then '浙江省'

when '34' then '安徽省'

when '35' then '福建省'

when '36' then '江西省'

when '37' then '山东省'

when '41' then '河南省'

when '42' then '湖北省'

when '43' then '湖南省'

when '44' then '广东省'

when '45' then '广西壮族自治区'

when '46' then '海南省'

when '50' then '重庆市'

when '51' then '四川省'

when '52' then '贵州省'

when '53' then '云南省'

when '54' then '西藏自治区'

when '61' then '陕西省'

when '62' then '甘肃省'

when '63' then '青海省'

when '64' then '宁夏回族自治区'

when '65' then '新疆维吾尔自治区'

when '71' then '台湾省'

when '81' then '香港特别行政区'

when '82' then '澳门特别行政区'

else '未知'

end AS province

FROM uip_bjt_userinfo t

group by case substr(t.CERTNO,0,2)

when '11' then '北京市'

when '12' then '天津市'

when '13' then '河北省'

when '14' then '山西省'

when '15' then '内蒙古自治区'

when '21' then '辽宁省'

when '22' then '吉林省'

when '23' then '黑龙江省'

when '31' then '上海市'

when '32' then '江苏省'

when '33' then '浙江省'

when '34' then '安徽省'

when '35' then '福建省'

when '36' then '江西省'

when '37' then '山东省'

when '41' then '河南省'

when '42' then '湖北省'

when '43' then '湖南省'

when '44' then '广东省'

when '45' then '广西壮族自治区'

when '46' then '海南省'

when '50' then '重庆市'

when '51' then '四川省'

when '52' then '贵州省'

when '53' then '云南省'

when '54' then '西藏自治区'

when '61' then '陕西省'

when '62' then '甘肃省'

when '63' then '青海省'

when '64' then '宁夏回族自治区'

when '65' then '新疆维吾尔自治区'

when '71' then '台湾省'

when '81' then '香港特别行政区'

when '82' then '澳门特别行政区'

else '未知'end order by province desc

2、通过身份证号得到性别(第17位为奇数为男,偶数为女)

select

decode(mod(to_number(substr(t.useridcardnum, 17, 1)), 2),0,'女','男') as sex

from uip_ca_userinfo t

3、通过身份证号得到年龄

select to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) as age from uip_ca_userinfo t

4、通过身份证号统计所在年龄段的人数

select count(t.id),

case

when to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 1 and 20 then

'1-20岁'

when to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 21 and 30 then

'21-30岁'

when to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 31 and 40 then

'31-40岁'

when to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 41 and 50 then

'41-50岁'

else

'50岁以上'

end as 年龄段

from uip_ca_userinfo t

group by case

when to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 1 and 20 then

'1-20岁'

when to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 21 and 30 then

'21-30岁'

when to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 31 and 40 then

'31-40岁'

when to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 41 and 50 then

'41-50岁'

else

'50岁以上'

end

order by 年龄段 asc

5、通过身份证号统计男女数量

select count(t.id),

decode(mod(to_number(substr(t.useridcardnum, 17, 1)), 2),0,'女','男') as sex

from uip_ca_userinfo t

where to_char(sysdate, 'yyyy') - substr(t.useridcardnum, 7, 4) between 1 and 26

group by decode(mod(to_number(substr(t.useridcardnum, 17, 1)), 2),0,'女','男')

看完这篇关于Oracle如何实现按身份证号得到省市、性别、年龄的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。

oracle 导出身份证号_Oracle如何实现按身份证号得到省市、性别、年龄相关推荐

  1. oracle手机号码检验字数_oracle正则表达式匹配手机特号

    Oracle10g提供了在查询中使用正则表达的功能,它是通过各种支持正则表达式的函数在where子句中实现的.本文将简单的介绍oracle正则表达式常用语法,并通过一个手机特号匹配的例子演示正则表达式 ...

  2. oracle 导出身份证号_oracle 根据身份证号计算出生日期

    1.情景展示 如何根据身份证号推算出出生日期? 2.解决方案 --根据身份证号计算出生日期 SELECT DECODE(LENGTH(ID_CARD), 18, SUBSTR(ID_CARD, 7, ...

  3. oracle手机号码检验字数_oracle根据检验规则获取正确身份证号

    CREATE OR REPLACE FUNCTION FN_GETIDBYCHECK(IDS VARCHAR2) RETURN VARCHAR2 /** 20140321根据身份证号获取经过校验的身份 ...

  4. oracle导出脚本文件怎么打开,Windows下的Oracle导出脚本 -电脑资料

    Windows下的Oracle导出脚本 导出脚本内容: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...

  5. oracle 字段除以1000,ORACLE常用}1000(之一)_oracle

    大家在oracle的r候可能龅胶芏嗫雌聿浑y的}, 特eπ率碚f, 今天我伟阉Y一下, l布o大家, 希望Υ蠹矣助! 和大家一起探, 共同M步! ORACLE高手碚f是不用看的. 1. Oracle安 ...

  6. Oracle导出Excel的几种操作方案的比较

    最近有个需求,从Oracle导出数据到Excel. 针对这个需求,有多种实现方式,例如spool.utl_file.PLSQL Developer导出.Java等语言直连数据库操作,没有最佳方案,只有 ...

  7. 关于Oracle导出.db文件

    最简单的Oracle导出.db数据库文件 一.需要使用到的工具 1.PLSQLDev(建议使用13以上版本)2.Navicat (能支持连接SQLlite数据库)3.WPS/Office(修改文件使用 ...

  8. oracle取32位唯一码,Oracle导出导入dmp文件命令,以及excel生成32位uuid

    Oracle导出dmp文件命令,以及excel生成64位uuid 导出命令cmd中 expdp mms/xfkjerp@orcl schemas=mms dumpfile=expdp.dmp DIRE ...

  9. oracle导出多CSV文件的靠谱的

    oracle导出多CSV文件的问题 ---------------------------------------------------------------------- 用ksh脚本从orac ...

  10. oracle 9I 存储过程复制,使用ADO.NET访问Oracle 9i存储过程(上)_oracle

    本文讨论了如何使用 ADO.NET 访问 oracle 存储过程(称为 SQL 编程块)和函数(返回单个值的编程块). 您可以使用以下托管数据提供程序连接到 Oracle 数据库:Microsoft ...

最新文章

  1. 为啥程序员下班后只关显示器从不关电脑?看看各大网站的答案~
  2. web前端(13)—— 了解JavaScript,JavaScript的引入方式
  3. 多因素方差分析_方差分析入门
  4. LUA Learning Note 4: 数据结构
  5. function函数的使用
  6. C#中的多线程 - 同步基础
  7. countif函数比较两列不同_VLOOKUP函数批量查找,这么长的公式你可以写出来,立马加薪...
  8. Kubernetes之RBAC
  9. php搭建聊天室,php聊天室_用PHP MySQL搭建聊天室
  10. 用一行`CSS`实现10种布局
  11. 学习Linux七(Linux必学60个命令之【系统管理】)
  12. 怎么把webm转换成mp4?步骤教程
  13. 深度解析dubbo源码系列
  14. 贾扬清:把生命浪费在有意思的事情上
  15. Cocos2d-x 2.0 网格动画深入分析
  16. 当前的安全设置计算机面临风险,win7系统IE8提示“当前安全设置会使计算机有风险”的解决方法...
  17. 李振杰:中科红旗的生与死
  18. java孤岛求生类游戏下载,我的世界荒岛余生整合包
  19. python中非可选参数_python基础教程函数参数
  20. web前端学习css“北方高温“案例

热门文章

  1. 商品分析是什么?该怎么做(入门版)
  2. (转)CRC校验算法详解
  3. 网络安全应急响应的基本流程
  4. win10 悬浮日历_win10系统桌面添加日历,天气,时钟等小工具的操作方法
  5. 路径规划-人工势场法(Artificial Potential Field)
  6. 北斗芯片是如何决定着北斗产业的未来?
  7. 小波分解与小波包分解的区别
  8. 计算机常用文献管理工具,工具丨5款常用的文献管理软件
  9. FineReport帆软报表的安装
  10. 设计模式之-生成器模式