如何找到表中的身分证号字段不是正规的数据?比如身分证号是15或18位的,怎么找到不是正常的呢,也就是垃圾数据。

解决方案 »

  1.   

    SELECT *
    FROM oppositeparty
    WHERE (LEN(IdCard) <> 15) OR
          (LEN(IdCard) <> 18)
    这个语句可以么?
      

  2.   

    1 对位数判断
    SELECT *
    FROM oppositeparty
    WHERE (LEN(IdCard) <> 15) OR
          (LEN(IdCard) <> 18)
    2 身份证号不含有数字以外的字符
    select ISNUMERIC (身份证号)=1 
    3 第一位不等于0
    select left(身份证号,1)<>0
    4 判断7~14位可以装换成datetime 类型
    declare @time varchar(20)
    select @time=substring(身份证号,7,8)
    isdate(convert(datetime,@time))=1其他再看下