首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

新手求一根据身份证得到性别及年龄的函数解决办法

2012-06-02 
新手求一根据身份证得到性别及年龄的函数身份证包含15位及18位,谢谢各位[解决办法]SELECT ceil(months_bet

新手求一根据身份证得到性别及年龄的函数
身份证包含15位及18位,谢谢各位

[解决办法]
SELECT ceil(months_between(sysdate,birthday)/12) AS age,
DECODE(mod(sex,2),0,'女',1,'男','其它') AS sex
FROM
(SELECT to_date(DECODE(LENGTH(a),15,'19' || SUBSTR(a,7,6),18,SUBSTR(a,7,8)),'yyyy-mm-dd') AS birthday,
SUBSTR(a,LENGTH(a)) AS sex
FROM
( SELECT '111222199010103339' AS a FROM dual
UNION ALL
SELECT '111222198010103334' FROM dual
UNION ALL
SELECT '111222651010333' FROM dual
)
)

AGE SEX 
---------------------- --- 
22 男
32 女
47 男

热点排行