解决方案 »

  1.   

    至少有一个百家姓的表 然后关联起来 GROUP BY
    百家姓的表可以这样建立ID NAME
    1  赵
    2  钱
    3  孙
    。。然后在你现在的表里面记录ID
      

  2.   

    百家姓表记录好之后,要怎么在现在的表记录ID呢?
    即现在的表是 姓 + 名,怎么把百家姓表的ID相应地设置到当前表?
    要用到 NAME LIKE '姓%' 作条件么?
      

  3.   

    百家姓表记录好之后,要怎么在现在的表记录ID呢?
    即现在的表是 姓 + 名,怎么把百家姓表的ID相应地设置到当前表?
    要用到 NAME LIKE '姓%' 作条件么?也只能是这样了--不考虑特殊情况
    SELECT T2.姓,SUM(1) FROM 人员表 T1
    LEFT JOIN 百家姓 T2 ON T1.NAME LIKE T2.姓+'%'
    GROUP BY T2.姓
    --考虑特殊情况
    SELECT T2.姓,SUM(1) FROM 人员表 T1
    OUTER APPLY(SELECT TOP 1 姓 FROM 百家姓 WHERE T1.NAME LIKE 姓+'%')T2
    GROUP BY T2.姓
      

  4.   

    select  count(*)
    from 人员表
    where name like '陈%'
      额 表示我只会这个。
      

  5.   

    select  count(*)
    from 人员表
    where name like '陈%'
      额 表示我只会这个。 
    ---------------------------------------
    这样是不行的,比如说欧和欧阳
    而且难不成你还针对某个姓执行一次查询create table t1_person
    ( aid int identity(1,1) unique,
    ps_name nvarchar(50),
    ps_fname nvarchar(5),
    )go
    create table t1_personf_fname
    ( aid int identity(1,1),
    ps_fname nvarchar(5) primary key,
    ps_count smallint
    )insert into t1_person(ps_name,ps_fname)
    select '张辽','张' union
    select '张虎','张' union
    select '欧阳','欧' union
    select '欧阳锋','欧阳'

    insert into t1_personf_fname(ps_fname,ps_count)
    select '吕',0 union
    select '张',0 union
    select '欧',0 union
    select '欧阳',0

    update t1_personf_fname set ps_count=a2.fcount
    from t1_personf_fname a1
    inner join (select ps_fname,COUNT(aid) as fcount
    from t1_person
    group by ps_fname
    ) a2 on a1.ps_fname=a2.ps_fname

    select * from t1_personf_fname