文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>收集一些非常好用常用的用户函数。分享给大家参考。

收集一些非常好用常用的用户函数。分享给大家参考。

时间:2011-06-13  来源:ChallengerDBA

--可将字符串转换为全角或半角的
CREATE  FUNCTION [dbo].[f_Convert]
(
  @str NVARCHAR(4000) ,   --要转换的字符串   
  @flag BIT               --转换标志,0转换成半角,1转换成全角   
    
)
RETURNS NVARCHAR(4000)
AS 
BEGIN   
    DECLARE @pat NVARCHAR(8) ,
        @step INT ,
        @i INT ,
        @spc INT   
    IF @flag = 0 
        SELECT  @pat = N'%[!-~]%', @step = -65248,
                @str = REPLACE(@str, N' ', N'   ')   
    ELSE 
        SELECT  @pat = N'%[!-~]%', @step = 65248,
                @str = REPLACE(@str, N'   ', N' ')   
    SET @i = PATINDEX(@pat   COLLATE LATIN1_GENERAL_BIN, @str)   
    WHILE @i > 0 
        SELECT  @str = REPLACE(@str, SUBSTRING(@str, @i, 1),
                               NCHAR(UNICODE(SUBSTRING(@str, @i, 1)) + @step)),
                @i = PATINDEX(@pat   COLLATE LATIN1_GENERAL_BIN, @str)   
    RETURN(@str)   
END   
GO
--获取每个汉字首个拼音
CREATE FUNCTION [dbo].[f_GetPy] ( @str NVARCHAR(4000) )
RETURNS NVARCHAR(4000)
AS 
BEGIN
    DECLARE @strlen INT ,
        @re NVARCHAR(4000)
    DECLARE @t TABLE
(
  chr NCHAR(1) COLLATE Chinese_PRC_CI_AS ,
  letter NCHAR(1)
)
    INSERT INTO @t ( chr, letter )
            SELECT '吖', 'A'
            UNION ALL
            SELECT '八', 'B'
            UNION ALL
            SELECT '嚓', 'C'
            UNION ALL
            SELECT '咑', 'D'
            UNION ALL
            SELECT '妸', 'E'
            UNION ALL
            SELECT '发', 'F'
            UNION ALL
            SELECT '旮', 'G'
            UNION ALL
            SELECT '铪', 'H'
            UNION ALL
            SELECT '丌', 'J'
            UNION ALL
            SELECT '咔', 'K'
            UNION ALL
            SELECT '垃', 'L'
            UNION ALL
            SELECT '嘸', 'M'
            UNION ALL
            SELECT '拏', 'N'
            UNION ALL
            SELECT '噢', 'O'
            UNION ALL
            SELECT '妑', 'P'
            UNION ALL
            SELECT '七', 'Q'
            UNION ALL
            SELECT '呥', 'R'
            UNION ALL
            SELECT '仨', 'S'
            UNION ALL
            SELECT '他', 'T'
            UNION ALL
            SELECT '屲', 'W'
            UNION ALL
            SELECT '夕', 'X'
            UNION ALL
            SELECT '丫', 'Y'
            UNION ALL
            SELECT '帀', 'Z'
    SELECT  @strlen = LEN(@str), @re = ''
    WHILE @strlen > 0 
        BEGIN
            SELECT TOP 1
                    @re = letter + @re, @strlen = @strlen - 1
                FROM @t a
                WHERE chr <= SUBSTRING(@str, @strlen, 1)
                ORDER BY chr DESC
            IF @@rowcount = 0 
                SELECT  @re = SUBSTRING(@str, @strlen, 1) + @re,
                        @strlen = @strlen - 1
        END
    RETURN(@re)
END

 
以上均在SQL 2008测试通过。今天就写到这,有遇到好用的将继续更新。
相关阅读 更多 +
排行榜 更多 +
幣安BNB币行情神器

幣安BNB币行情神器

金融理财 下载
愤怒的火柴人4中文版下载

愤怒的火柴人4中文版下载

角色扮演 下载
嘟嘟脸恶作剧手游下载

嘟嘟脸恶作剧手游下载

休闲益智 下载