1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        SQL如何提取字符串中的字母?

        共 1316字,需瀏覽 3分鐘

         ·

        2021-01-09 15:50

        點擊關注上方“SQL數據庫開發(fā)”,

        設為“置頂或星標”,第一時間送達干貨

        問題描述

        我們在進行數據處理時,可能經常需要對不同類型的字符進行抽取。比如一些產品型號,批次之類的會使用字母表示,這個時候該如何提取這些數據呢?


        問題分析

        不管是字母,還是數字,我們都可以使用相應的匹配規(guī)則來抽取出來。但是由于字母是混合在字符串中,我們需要循環(huán)對其進行匹配。


        具體解法

        我們創(chuàng)建一個函數,通過調用這個函數來找出所有的字母。

        CREATE FUNCTION dbo.GET_LETTER (@Str VARCHAR(100))
        RETURNS VARCHAR(100)
        AS
        BEGIN
        WHILE PATINDEX('%[^a-z]%', @Str) > 0
        BEGIN
        SET @Str = STUFF(@Str, PATINDEX('%[^a-z]%', @Str), 1, '');
        END;
        RETURN @Str;
        END;
        GO


        代碼解讀

        上面的解法主要使用了兩個函數,PATINDEX函數和STUFF函數

        PATINDEX函數

        PATINDEX ( '%pattern%' , expression )

        返回pattern字符串在表達式expression里第一次出現(xiàn)的位置,起始值從1開始算。

        例如?

        SELECT PATINDEX('%SQL%','SQL數據庫開發(fā)')

        結果:

        因為SQL就在第一位,所以返回結果為1


        STUFF函數

        STUFF ( expression1 , start , length ,expression2 )

        字符串expression1 從start位置開始,刪除長度為length的字符后,在start后面填充expression2。

        例如

        SELECT STUFF('SQL,開發(fā)',4,1,'數據庫')

        ?結果:

        上面的示例是將","刪除后,替換成了"數據庫"


        測試函數

        理解完上面的函數,我們來測試一下我們自定義的函數GET_LETTER ()

        SELECT dbo.GET_LETTER('SQL數1據2庫3開4發(fā)road')

        結果:


        這與我們預期的結果一致,證明這個自定義函數是可行的。


        覺得不錯,歡迎轉發(fā)分享給更多人,讓有需要的人也看到。


        我是岳哥,最后給大家分享我寫的SQL兩件套:《SQL基礎知識第二版》《SQL高級知識第二版》的PDF電子版。里面有各個語法的解釋、大量的實例講解和批注等等,非常通俗易懂,方便大家跟著一起來實操。


        有需要的讀者可以下載學習,在下面的公眾號「數據前線」(非本號)后臺回復關鍵字:SQL,就行

        數據前線
        ——End——

        后臺回復關鍵字:1024,獲取一份精心整理的技術干貨

        后臺回復關鍵字:進群,帶你進入高手如云的交流群。

        推薦閱讀

        瀏覽 44
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日韩成人电影一区二区三区 | 黑人操逼逼 | 黄色在线免费网址 | 色一情一乱一乱一区91 | 玩弄少妇一级艳片 | 国产va精品免费观看 | 韩国一级毛片视频中文版免费 | 天天爽爽夜夜爽爽 | 又粗又硬友长国产视频 | 撸一撸色一色 |