select xm,left(sf,6) + substring(sf,9,9) 
from table 
group by xm,left(sf,6) + substring(sf,9,9) 

解决方案 »

  1.   

    表名table
    字段名称    含义
    xm          姓名
    sf          身份证号码select a.xm,a.sf,b.xm,b.sf 
    from  [table] a 
    join 
    (select xm,case when len(sf)=15 then sf else left(sf,6)+substring(right(trim(sf),len(sf)-6),3,9) end as sf from [table]) b
    on a.sf=b.sf
      

  2.   

    我试试第二个大仙给的
    thanks!!
      

  3.   

    第二位大仙,这个报错'trim' 不是可以识别的 函数名。
      

  4.   

    还是报错
    向 substring 函数传递了无效的 length 参数
      

  5.   

    表名table
    字段名称    含义
    xm          姓名
    sf          身份证号码select a.xm,a.sf,b.xm,b.sf 
    from  [table] a 
    join 
    (select xm,case when len(sf)=15 then sf else left(sf,6)+substring(right(ltrim(ltrim(sf)),len(sf)-6),3,9) end as sf from [table]) b
    on a.sf=b.sf