日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL點滴33—SQL中的字符串操作

系統 2301 0
原文: SQL點滴33—SQL中的字符串操作

計算字符串長度
len()用來計算字符串的長度

      
        select
      
       sname ,
      
        len
      
      (sname) 
      
        from
      
       student
    

字符串轉換為大、小寫
lower() 用來將一個字符串轉換為小寫,upper() 用來將一個字符串轉換為大寫

      
        select
      
      
        lower
      
      (
      
        '
      
      
        I AM A STUDENT !
      
      
        '
      
      
        )


      
      
        select
      
      
        upper
      
      (
      
        '
      
      
        i am a student !
      
      
        '
      
      )
    

截去字符串左、右側空格???????????????????????????????????????????? ?
ltrim() 用來將一個字符串左側的空格去掉 ,rtrim()用來將一個字符串右側的空格去掉

      
        declare
      
      
        @str
      
      
        varchar
      
      (
      
        100
      
      
        )


      
      
        set
      
      
        @str
      
      
        =
      
      
        '
      
      
         我的左側有空格!
      
      
        '
      
      
        select
      
      
        @str
      
      
        as
      
       初始字符, 
      
        len
      
      (
      
        @str
      
      ) 
      
        as
      
       初始長度,
      
        ltrim
      
      (
      
        @str
      
      ) 
      
        as
      
       現有字符,
      
        len
      
      (
      
        ltrim
      
      (
      
        @str
      
      )) 
      
        as
      
       現有長度
    

返回由重復的空格組成的字符串

      
        space
      
      
        (integer_expression)    integer_expression 指示空格個數的正整數。如果 integer_expression 為負,則返回空字符串。


      
      
        select
      
      
        '
      
      
        A
      
      
        '
      
      
        +
      
      
        space
      
      (
      
        2
      
      )
      
        +
      
      
        '
      
      
        B
      
      
        '
      
    

取子字符串

      
        substring
      
      
        (string,start_position,length) 可以從任意位置取任意長度的子字符串,


      
      
        left
      
      
        (string,length)  從左側開始取子字符串


      
      
        right
      
      
        (string,length)從右側開始取子字符串


      
      
        select
      
      
        substring
      
      (
      
        '
      
      
        HelloWorld!
      
      
        '
      
      ,
      
        6
      
      ,
      
        6
      
      
        )


      
      
        select
      
      
        left
      
      (
      
        '
      
      
        HelloWorld!
      
      
        '
      
       ,
      
        5
      
      
        )


      
      
        select
      
      
        right
      
      (
      
        '
      
      
        HelloWorld!
      
      
        '
      
       ,
      
        6
      
      )
    

字符串替換

      
        replace
      
      
        (string,要被替換的字符串,替換的字符串)


      
      
        select
      
      
        replace
      
      (
      
        '
      
      
        HelloWorld!
      
      
        '
      
      ,
      
        '
      
      
        o
      
      
        '
      
      ,
      
        '
      
      
        e
      
      
        '
      
      ) 結果為:HelleWerld!
    

返回字符串值的逆向值

      
        reverse
      
      
        (string_expression)


      
      
        select
      
      
        reverse
      
      (
      
        '
      
      
        abc
      
      
        '
      
      ) 結果為:cba
    

刪除指定長度的字符,并在指定的起點處插入另一組字符

      
        stuff
      
      
        (character_expression , start , length ,character_expression)

start 一個整數值,指定刪除和插入的開始位置。

length 一個整數,指定要刪除的字符數。


      
      
        select
      
      
        stuff
      
      (
      
        '
      
      
        abcdefg
      
      
        '
      
      ,
      
        1
      
      ,
      
        6
      
      ,
      
        '
      
      
        Hello 
      
      
        '
      
      ) 結果為:Hello g
    

以指定的次數重復字符串值

      
        replicate
      
      
        (string_expression ,integer_expression)


      
      
        select
      
      
        replicate
      
      (
      
        '
      
      
        abc
      
      
        '
      
      ,
      
        4
      
      ) 結果為:abcabcabcabc
    

返回字符串中指定表達式的開始位置

      
        charindex
      
      
        (expression1 ,expression2  , start_location )或charindex(expression1 ,expression2 )

expression1在expression2 中的開始位置


      
      
        select
      
      
        charindex
      
      (
      
        '
      
      
        H
      
      
        '
      
      ,
      
        '
      
      
        elloHWorld
      
      
        '
      
      ) 結果為:
      
        5
      
    

返回指定表達式中模式第一次出現的開始位置,返回指定表達式中某模式第一次出現的起始位置;

      
        patindex
      
      (
      
        '
      
      
        %pattern%
      
      
        '
      
      ,expression)
    

如果在全部有效的文本和字符數據類型中沒有找到該模式,則返回零。

      
        select
      
      
        patindex
      
      (
      
        '
      
      
        %Hello%
      
      
        '
      
      ,
      
        '
      
      
        WorldHello
      
      
        '
      
      ) 結果為:
      
        6
      
    

返回輸入表達式的第一個字符的整數值

      
        unicode
      
      ( 
      
        '
      
      
        ncharacter_expression
      
      
        '
      
       )    
      
        '
      
      
         ncharacter_expression 
      
      
        '
      
        nchar
      
        nvarchar
      
      
         表達式。


      
      
        select
      
      
        unicode
      
      (
      
        '
      
      
        a
      
      
        '
      
      ) 結果為:
      
        97
      
      
        select
      
      
        unicode
      
      (
      
        '
      
      
        abc
      
      
        '
      
      ) 結果為:
      
        97
      
    

返回由數字數據轉換來的字符數據
str(float_expression , length ,decimal )
float_expression 帶小數點的近似數字 (float) 數據類型的表達式。
length?????????????? 總長度。它包括小數點、符號、數字以及空格。默認值為 10。
decimal???????????? 小數點右邊的小數位數。decimal 必須小于等于 16。如果 decimal 大于 16,則將結果截斷為小數點右邊的 16 位。

      
        select
      
      
        str
      
      (
      
        123.436
      
      ,
      
        2
      
      ), 
      
        len
      
      (
      
        str
      
      (
      
        123.436
      
      ,
      
        2
      
      )) 
      
        //
      
      當表達式超出指定長度時,字符串為指定長度返回 
      
        **
      
      
        select
      
      
        str
      
      (
      
        123.436
      
      ), 
      
        len
      
      (
      
        str
      
      (
      
        123.436
      
      
        )),


      
      
        str
      
      (
      
        123.436
      
      ,
      
        6
      
      ), 
      
        len
      
      (
      
        str
      
      (
      
        123.436
      
      ,
      
        6
      
      
        )),


      
      
        str
      
      (
      
        123.436
      
      ,
      
        6
      
      ,
      
        1
      
      ), 
      
        len
      
      (
      
        str
      
      (
      
        123.436
      
      ,
      
        6
      
      ,
      
        1
      
      )) 
      
        //
      
      
        由六個數字和一個小數點組成的表達式轉換為有六個位置的字符串。

數字的小數部分舍入為一個小數位。


      
      
        select
      
      
        str
      
      (
      
        1234.436
      
      ), 
      
        len
      
      (
      
        str
      
      (
      
        1234.436
      
      
        )),


      
      
        str
      
      (
      
        1234.436
      
      ,
      
        6
      
      ), 
      
        len
      
      (
      
        str
      
      (
      
        1234.436
      
      ,
      
        6
      
      
        )),


      
      
        str
      
      (
      
        1234.436
      
      ,
      
        6
      
      ,
      
        1
      
      ),
      
        len
      
      (
      
        str
      
      (
      
        1234.436
      
      ,
      
        6
      
      ,
      
        1
      
      ))
    

得到字符的ASCII碼
ascii()用來得到一個字符的ASCII碼,它有且只有一個參數,如果參數為字符串,那么取第一個字符的ASCII碼

      
        select
      
      
        ascii
      
      (
      
        '
      
      
        H
      
      
        '
      
      
        )


      
      
        select
      
      
        ascii
      
      (
      
        '
      
      
        HelloWorld!
      
      
        '
      
      )
    

得到一個與ASCII碼數字對應的字符

      
        Char
      
      (integer_expression)  integer_expression 介于 
      
        0
      
        255
      
       之間的整數。如果該整數表達式不在此范圍內,將返回 
      
        NULL
      
      
         值。


      
      
        select
      
      
        Char
      
      (
      
        72
      
      )
    

返回返回具有指定的整數代碼的 Unicode 字符

      
        nchar
      
      (integer_expression)  integer_expression 介于 
      
        0
      
        65535
      
       之間的正整數。如果指定了超出此范圍的值,將返回 
      
        NULL
      
      
      
        select
      
      
        nchar
      
      (
      
        1000
      
      )
    

返回帶有分隔符的 Unicode 字符串,分隔符的加入可使輸入的字符串成為有效的 SQL Server 分隔標識符。

      
        quotename
      
      (
      
        '
      
      
        character_string
      
      
        '
      
      )  character_string 不得超過 
      
        128
      
       個字符。超過 
      
        128
      
       個字符的輸入將返回 
      
        NULL
      
      
      
        select
      
      
        quotename
      
      (
      
        '
      
      
        abc[aa]def
      
      
        '
      
      
        )



結果為:
      
      
        [
      
      
        abc[
      
      
        ]
      
      ]def]  請注意,字符串 abc
      
        []
      
      
        def 中的右方括號有兩個,用于指示轉義符。


      
      
        select
      
      
        QUOTENAME
      
      (
      
        '
      
      
        abcdef
      
      
        '
      
      ,
      
        ''''
      
      ) 
      
        --
      
      
        分隔符是兩個單引號
      
      
        

--
      
      
         'abcdef'
      
      
        select
      
      
        QUOTENAME
      
      (
      
        '
      
      
        abcdef
      
      
        '
      
      ) 
      
        --
      
      
        分隔符是]
      
      
        

--
      
      
         [abcdef]
      
      
        select
      
      
        QUOTENAME
      
      (
      
        '
      
      
        abcdef
      
      
        '
      
      ,
      
        '
      
      
        {}
      
      
        '
      
      ) 
      
        --
      
      
        分隔符是}
      
      
        

--
      
      
         {abcdef}
      
    


發音匹配度
有時候我們并不知道一個人姓名的拼寫,但是我們知道他的發音,這時我們可以進行發音的匹配度測試。
soundex()用于計算一個字符串的發音特征性,這個特征值為一個四個字符的字符串,特征性的第一個字符總是初始字符串中的第一個字符,而后是一個三位數的數值。
select sname ,soundex(sname) from student
發音特征值的含義非常復雜,如果要根據兩個發音特征值來分析兩個字符串的發音相似度的話非常麻煩。
可以使用difference()來簡化兩個字符串的發音相似度比較,它可以計算兩個字符串的發音特征值,并且比較它們,
然后返回一個0~4之間的值來反映兩個字符串的發音相似度,這個值越大則表示兩個字符串的發音相似度越大。
select sname,soundex(sname), difference(sname,'Herry') from stu

?

?

?

?

SQL點滴33—SQL中的字符串操作


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 澄江县| 马公市| 边坝县| 台湾省| 拉孜县| 宁武县| 集安市| 大竹县| 甘谷县| 曲周县| 玉山县| 偏关县| 桂平市| 望江县| 永和县| 抚州市| 达拉特旗| 姚安县| 建始县| 安新县| 健康| 富锦市| 繁昌县| 长葛市| 沂源县| 改则县| 肃南| 沁水县| 五家渠市| 丰原市| 台南县| 谢通门县| 上饶县| 西吉县| 永昌县| 祥云县| 邢台县| 白朗县| 仁寿县| 汝城县| 陕西省|