如何取得某列中每个字的五笔首码?我已经有库了,不知道如何自定义函数,谢谢!

解决方案 »

  1.   

    你有库了就好办了。
    例如:
    tablename
    zi wubi
    王 G
    女 V
    日 J
    create function GetSM(@zi varchar(20))
    returns varchar(50)
    as
    begin
    declare @s varchar(50)
    select @s=wubi from tablename where zi=@zi
    return @s
    end 
      

  2.   

    这个 某列 如果量大的话,估计较慢。方法就是substring每个字去你的库查。
      

  3.   


    declare @table table (hz varchar(2),code varchar(1))
    insert into @table
    select '我','q' union all
    select '人','w' union all
    select '有','e' union all
    select '的','r' union all
    select '和','t' union all
    select '主','y' union all
    select '产','u'declare @t varchar(20)
    set @t='我有主产人'declare @result varchar(20)
    set @result=''declare @i int
    set @i=1
    while @i<=len(@t)
    begin
    --declare @a varchar(100)
    --select 
    set @result=@result+(select code from @table where hz=substring(@t,@i,1))
    set @i=@i+1
    end
    select @result '五笔首码'
    /*
    五笔首码
    --------------------
    qeyuw
    */
      

  4.   


    create function GetWBSM(@t varchar(50))
    returns varchar(50)
    as
    begin
    declare @result varchar(20)
    set @result=''
    declare @i int
    set @i=1
    while @i<=len(@t)
    begin
    set @result=@result+
                (select code from 你的表名 where hz=substring(@t,@i,1))
    set @i=@i+1
    end
        return @result
    endselect dbo.GetWBSM('我有主产人')表名和字段名请自行更改。