sql 分割字串 輸出

來源:互聯網
上載者:User
樣本:傳入多個Email地址,通過每個Email地址間的','分隔字元,將各Email地址分開。SELECT * FROM dbo.uf_Split('aa@aa.com,bb@bb.com,cc@cc.com,dd@dd.com',',');查詢結果:subid      autoidaa@aa.com 1bb@bb.com 2cc@cc.com 3dd@dd.com 4下面是[uf_Split]方法的具體實現:CREATE   FUNCTION [dbo].[uf_Split](@str VARCHAR(max),@splitchar CHAR(1))      RETURNS  @t TABLE(subid VARCHAR(1000),autoid INT) AS       /*      subject:split函數(目前只能對單個字元進行分割,不能以片語方式分割)      author:kq zhou     create date:2009-4-1      */      BEGIN            DECLARE @substr VARCHAR(max)      SET @substr=@str      DECLARE @i INT,@j INT      SET @j=LEN(REPLACE(@str,@splitchar,REPLICATE(@splitchar,2)))-LEN(@str)--擷取分割符個數      IF @j=0      BEGIN        INSERT INTO @t VALUES (@substr,1) --沒有分割符則插入整個字串       END      ELSE      BEGIN       SET @i=0       DECLARE @m int       WHILE @i<=@j       BEGIN         IF(@i<@j)         BEGIN          SET @m=CHARINDEX(@splitchar,@substr)-1 --擷取分割符的前一位置          INSERT INTO @t VALUES(LEFT(@substr,@m),@i+1)           SET @substr=RIGHT(@substr,LEN(@substr)-(@m+1)) --去除已擷取的分割串,得到還需要繼續分割的字串         END        ELSE         BEGIN           INSERT INTO @t VALUES(@substr,@i+1)--對最後一個被分割的串進行單獨處理          END        SET @i=@i+1        END      END            RETURN       END    GO

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.