Oracle按身份证号得到省市、性别、年龄的示例代码

 更新时间:2020年06月09日 10:17:44   作者:时光有伱记忆成花  
这篇文章主要介绍了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 SQL Developer显示的时间包含时分秒的设置方法

    Oracle SQL Developer显示的时间包含时分秒的设置方法

    Oracle SQL Developer是Oracle公司出品的一个免费的集成开发环境,本篇文章给大家介绍Oracle SQL Developer显示的时间包含时分秒的设置方法,需要的朋友参考下吧
    2015-09-09
  • Oracle如何编写一个sqlldr实例

    Oracle如何编写一个sqlldr实例

    这篇文章主要介绍了Oracle如何编写一个sqlldr实例,SQL*Loader是oracle的高速批量数据加载工具,这是一个非常有用的工具,可用于从多种平面文件格式向Oracle数据库中加载数据。SQLLDR可以在极短的时间内加载数量庞大的数据,需要的朋友可以参考下
    2023-07-07
  • Oracle ORA-00904:标识符无效解决方法(太坑了!!)

    Oracle ORA-00904:标识符无效解决方法(太坑了!!)

    最近执行sql时oracle报错ORA-00904:标识符无效,所以这篇文章主要给大家介绍了关于Oracle ORA-00904:标识符无效解决方法的相关资料,需要的朋友可以参考下
    2022-10-10
  • oracle date类型比较时间方式

    oracle date类型比较时间方式

    在Oracle数据库中比较DATE类型的时间部分,可以使用多种方法,包括使用TO_CHAR和时间格式提取时间部分、使用EXTRACT函数提取特定时间部分、使用INTERVAL进行时间比较以及转换为TIMESTAMP进行比较,每种方法都有其适用的场景,选择合适的方法取决于具体需求
    2025-02-02
  • Oracle在PL/SQL中嵌入SQL语句

    Oracle在PL/SQL中嵌入SQL语句

    这篇文章介绍了Oracle在PL/SQL中嵌入SQL语句的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Oracle客户端的安装与远程连接配置方法分享

    Oracle客户端的安装与远程连接配置方法分享

    在继续Oracle客户端的安装之前,需要分析一下Oracle客户端与数据库服务器之间的连接机制
    2012-11-11
  • Oracle查询用户拥有所有系统权限的方法

    Oracle查询用户拥有所有系统权限的方法

    这篇文章主要介绍了Oracle查询用户拥有所有系统权限,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-12-12
  • oracle DBMS_SQL.PARSE的使用方法和示例

    oracle DBMS_SQL.PARSE的使用方法和示例

    DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/SQL块,并将其存储在动态游标中,示例展示了如何使用该过程,资源管理、错误处理和权限是使用DBMS_SQL包时应注意的事项,感兴趣的朋友一起看看吧
    2025-02-02
  • Oracle数据库集复制方法浅议

    Oracle数据库集复制方法浅议

    Oracle数据库集复制方法浅议...
    2007-03-03
  • Oracle数据库19C的安装与配置指南(2022年最新版)

    Oracle数据库19C的安装与配置指南(2022年最新版)

    在Oracle数据库的发展中,数据库一直处于不断升级状态,下面这篇文章主要给大家介绍了关于Oracle数据库19C的安装与配置指南的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-06-06

最新评论