zoukankan      html  css  js  c++  java
  • sql server 标量值函数

    例1:

    ALTER FUNCTION [dbo].[ConvertToPinYin](@source [nvarchar](4000))

    RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER

    ASEXTERNAL NAME [Job88.FullTextSearch.DataSourceFormatter].[Job88.FullTextSearch.DataSourceFormatter.Func_FormatFieldValue].[ConvertToPinYin]

    例2:

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go


    /*
    SELECT dbo.Func_GetPinYinExt('中/国/人')
    */
    ALTER FUNCTION [dbo].[Func_GetPinYinExt]
    (
        @source nvarchar(4000)
    )
    RETURNS nvarchar(4000)
    AS
    BEGIN
    --    DECLARE @source nvarchar(4000)
    --    SET @source = '(中国/人民)'

        DECLARE @pinyin TABLE(
            ch char(1),
            hz1 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS,
            hz2 nchar(1) COLLATE Chinese_PRC_CS_AS_KS_WS)

        INSERT INTO @pinyin (ch, hz1, hz2)
        SELECT 'A', N'吖', N'鏊'
        UNION ALL SELECT 'B', N'八', N'簿'
        UNION ALL SELECT 'C', N'嚓', N'错'
        UNION ALL SELECT 'D', N'哒', N'跺'
        UNION ALL SELECT 'E', N'屙', N'贰'
        UNION ALL SELECT 'F', N'发', N'馥'
        UNION ALL SELECT 'G', N'旮', N'过'
        UNION ALL SELECT 'H', N'铪', N'蠖'
        UNION ALL SELECT 'J', N'丌', N'竣'
        UNION ALL SELECT 'K', N'咔', N'廓'
        UNION ALL SELECT 'L', N'垃', N'雒'
        UNION ALL SELECT 'M', N'妈', N'穆'
        UNION ALL SELECT 'N', N'拿', N'糯'
        UNION ALL SELECT 'O', N'噢', N'沤'
        UNION ALL SELECT 'P', N'趴', N'曝'
        UNION ALL SELECT 'Q', N'七', N'群'
        UNION ALL SELECT 'R', N'蚺', N'箬'
        UNION ALL SELECT 'S', N'仨', N'锁'
        UNION ALL SELECT 'T', N'他', N'箨'
        UNION ALL SELECT 'W', N'哇', N'鋈'
        UNION ALL SELECT 'X', N'夕', N'蕈'
        UNION ALL SELECT 'Y', N'丫', N'蕴'
        UNION ALL SELECT 'Z', N'匝', N'做'

        DECLARE @i int, @j int, @isSplitChar bit, @isFirstChar bit
        SET @i = PATINDEX('%[吖-做]%' COLLATE Chinese_PRC_CS_AS_KS_WS, @source)
        WHILE @i > 0
        BEGIN
            SELECT
                @source = REPLACE(@source, SUBSTRING(@source, @i, 1), ch)
                ,@i = PATINDEX('%[吖-做]%' COLLATE Chinese_PRC_CS_AS_KS_WS, @source)
            FROM @pinyin
            WHERE SUBSTRING(@source, @i, 1) BETWEEN hz1 AND hz2
        END

        --SELECT (@source)

        DECLARE @returnString nvarchar(4000)
        SET @j = PATINDEX('%[A-Z]%', @source)
        SET @returnString = SUBSTRING(@source, @j, 1)

        SET @i = CHARINDEX('/', @source)
        --SELECT @i
        WHILE @i > 0
        BEGIN
            SET @source = SUBSTRING(@source, @i + 1, LEN(@source) - @i)
            SET @j = PATINDEX('%[A-Z]%', @source)
            SET @returnString = @returnString + '/' + SUBSTRING(@source, @j, 1)

            SET @i = CHARINDEX('/', @source)
        END

        --SELECT @returnString

        RETURN (@returnString)
    END

     

  • 相关阅读:
    IE9 Beta首则演示视频泄露 狼人:
    浅析网页界面设计——首页设计 狼人:
    需警惕CSS3属性的书写顺序 狼人:
    IE9 Beta与四大浏览器基准测试对比 狼人:
    Ubuntu 9.04将在10月23日停止更新服务和技术支持 狼人:
    IE9对CSS3的支持情况概述 狼人:
    ASP.NET惊爆新安全漏洞 攻击者可访问任意文件 狼人:
    Rails3之父Yehuda离开Engine Yard投奔HTML5 狼人:
    实用HTML,CSS和JavaScript速查表 狼人:
    20个学习CSS的绝佳网站——让你从入门到精通 狼人:
  • 原文地址:https://www.cnblogs.com/ylemzhang/p/1713684.html
Copyright © 2011-2022 走看看