一、身份证号码的组成规则
(1)第1、2位数字表示:所在省份的代码;
(2)第3、4位数字表示:所在城市的代码;
(3)第5、6位数字表示:所在区县的代码;
(4)第7、8、9、10位代表出生年;
(5)第11位、12位表示:出生月;
(6)第13位、14位表示:出生日;
(7)第15、16位表示:同年同月同日同地区出生的顺序;
(8)第17位表示性别:奇数表示男性,偶数表示女性;
(9)第18位数字是校检码:0-9 X;
二、使用hql进行身份证号码的校验
select * from
(select trim(upper(id)) idcard from id_info) t1
where
-- 1. 身份证号码位数不正确
length(idcard) <> 18
-- 2. 省份代码不正确
or substr(idcard,1,2) not in ('11','12','13','14','15','21','22','23',&#