取得拼音字头的存储过程数据库教程 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    存储过程|拼音

    -- =============================================

    -- Create scalar function (NWGetPYFirst)

    -- =============================================

    IF EXISTS (SELECT *

    FROM  sysobjects

    WHERE name = N'NWGetPYFirst')

    DROP FUNCTION NWGetPYFirst

    GO

    CREATE FUNCTION NWGetPYFirst

    (@str varchar(500) = '')

    RETURNS varchar(500)

    AS

    BEGIN

    Declare @strlen int,

    @return varchar(500),

    @ii int,

    @c char(1),

    @chn nchar(1)

    --//初始化变量

    Declare @pytable table(

    chn char(2) COLLATE Chinese_PRC_CS_AS NOT NULL,

    py char(1) COLLATE Chinese_PRC_CS_AS NULL,

    PRIMARY KEY (chn)

    )

    insert into @pytable values('吖', 'A')

    insert into @pytable values('八', 'B')

    insert into @pytable values('嚓', 'C')

    insert into @pytable values('咑', 'D')

    insert into @pytable values('妸', 'E')

    insert into @pytable values('发', 'F')

    insert into @pytable values('旮', 'G')

    insert into @pytable values('铪', 'H')

    insert into @pytable values('丌', 'I')

    --insert into @pytable values('丌', 'J')

    insert into @pytable values('咔', 'K')

    insert into @pytable values('垃', 'L')

    insert into @pytable values('嘸', 'M')

    insert into @pytable values('拏', 'N')

    insert into @pytable values('噢', 'O')

    insert into @pytable values('妑', 'P')

    insert into @pytable values('七', 'Q')

    insert into @pytable values('呥', 'R')

    insert into @pytable values('仨', 'S')

    insert into @pytable values('他', 'T')

    insert into @pytable values('屲', 'U')

    --insert into @pytable values('屲', 'V')

    --insert into @pytable values('屲', 'W')

    insert into @pytable values('夕', 'X')

    insert into @pytable values('丫', 'Y')

    insert into @pytable values('帀', 'Z')

    select @strlen = len(@str), @return = '', @ii = 0

    --//循环整个字符串,用拼音的首字母替换汉字

    while @ii < @strlen

    begin

    select @ii = @ii + 1, @chn = substring(@str, @ii, 1)

    if @chn > 'z' --//检索输入的字符串中有中文字符

    SELECT @c = max(py)

    FROM @pytable

    where chn <= @chn

    else

    set @c=@chn

    set @return=@return+@c

    end

    return @return

    END

    GO

    -- =============================================

    -- Example to execute function

    -- =============================================

    SELECT dbo.NWGetPYFirst('梦想国度'), dbo.NWGetPYFirst('noctwolf分享源码'), dbo.NWGetPYFirst('')

    GO

最新文章