none
正则表达式查询数据 RRS feed

  • 问题

  • 数据库里有一组会员身份证号,但是不一定每一个都是正确的,我想请教下怎样用正则表达式查询出正确的身份证号? 谢谢了!!!

     

    不知道还有没有别的方式查询呢?

    2010年5月4日 11:30

答案

  • --关于各组成部分 可以参看 http://blog.csdn.net/feixianxxx/archive/2009/08/02/4402329.aspx
    --根据博文中各个组成部分的内容,你还需要一个表示编码对象常住户口所在县(市、旗、区)的行政区划代码的辅助表 ZhengQu
    大概代码就是
    select * 
    from YourTb y join ZhengQu z on LEFT(y.col,6)=z.col
    where isdate(SUBSTRING(y.col,7,8))=1 
     and ISNUMERIC(SUBSTRING(y.col,15,3))=1
     and RIGHT(y.col,1) like '[0-9x]'
     
     如果是15位的身份证 
     select * 
    from YourTb y join ZhengQu z on LEFT(y.col,6)=z.col
    where isdate(SUBSTRING(y.col,7,6))=1 
     and ISNUMERIC(SUBSTRING(y.col,13,3))=1
     and RIGHT(y.col,1) like '[0-9x]'
    2010年5月4日 12:52