日期:2014-05-17  浏览次数:21007 次

求解,使用SQL查出正确的身份证号码,Oracle新手,莫怪!
公司数据库中某表的某个字段是省份证号,但是有一部分是错误的,我想把正确的和错误的分开,应该怎么写SQL语句啊???求解,我是Oracle新手,如果问题太简单的话,请高手莫怪,还望不吝赐教!谢谢!

362333195909080015L
362321196301150010L
32063219850303
34212679110565
06231981110758
09021980112214
06211981061016
320622730312609
02111981072241
06221968052164
06821982110774
1
1
1
1
06221976072291
06221974011869
06211980082824
06811980121664
01821979040344
06021981082420
06821982110317
06841985090671
320324780313657
0682983020137
06021971051920
06821984091877
01131984100848
06821980092486
03221983122000
03241984031125
06821984091450
06821984102372

------解决方案--------------------
正则表达式吧....oracle有挺多这类函数的...用法和其他语言的差不多...
------解决方案--------------------
写一个身份证校验函数,然后判断~~
------解决方案--------------------
where regexp_like(columnName,'^(\d{15}|\d{18})$')这样试试可以不