SQL Server字串函數(超實用)

來源:互聯網
上載者:User

標籤:

  • 1. len():計算字串長度
  • 2. lower()、upper():字串轉換為大、小寫
  • 3. ltrim()、rtrim():截去字串左、右側空格
  • 4. space():返回由重複的空格組成的字串
  • 5. substring()、left()、right():取子字串
  • 6. replace():字串替換
  • 7. reverse():返回字串值的逆向值
  • 8. stuff():刪除指定長度的字元,並在指定的起點處插入另一組字元
  • 9. replicate():以指定的次數重複字串值
  • 10. charindex():返回字串中指定運算式的開始位置
  • 11. patindex():返回指定“運算式中模式”第一次出現的開始位置
  • 12. unicode():返回輸入運算式的第一個字元的整數值
  • 13. str():返回由數字資料轉換來的字元資料
  • 14. ascii():得到字元的ASCII碼
  • 15. Char():得到一個與ASCII碼數字對應的字元
  • 16. nchar():返回返回具有指定的整數代碼的 Unicode 字元
  • 17. quotename() 轉義
  • 18. soundex():發音匹配度

以下所有例子均Studnet表為例:

1. len():計算字串長度

len()用來計算字串的長度,每個中文漢字或英文字母都為一個長度

select sname, len(sname) from student

2. lower()、upper():字串轉換為大、小寫

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

select lower(‘I AM A STUDENT !‘)select upper(‘i am a student !‘)

3. ltrim()、rtrim():截去字串左、右側空格

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

declare @str varchar(100);set @str=‘ 我的左側有空格!‘;select @str as 初始字元, len(@str) as 初始長度, ltrim(@str) as 現有字元, len(ltrim(@str)) as 現有長度;

返回結果:初始長度分別為9和8

4. space():返回由重複的空格組成的字串

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

select ‘A‘+ space(2)+‘B‘    /* 結果: ‘A  B‘ */

5. substring()、left()、right():取子字串
  • substring(string, start_position, length):可以從任意位置取任意長度的子字串,

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

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

select substring(‘HelloWorld!‘, 6, 6)   /* 結果:World */select left(‘HelloWorld!‘, 5)           /* 結果:Hello */select right(‘HelloWorld!‘, 6)          /* 結果:oWorld */

6. replace():字串替換

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

select replace(‘HelloWorld!‘,‘o‘,‘e‘)   /* 結果為:HelleWerld! */

7. reverse():返回字串值的逆向值

reverse(string_expression)

select reverse(‘abc‘)   /* 結果為:cba*/

8. stuff():刪除指定長度的字元,並在指定的起點處插入另一組字元

stuff(character_expression, start, length, character_expression) start:整數,指定刪除和插入的開始位置。 length:整數,指定要刪除的字元數。

select stuff(‘abcdefgf‘, 2, 6, ‘Hello-‘)    /* 結果為:aHello-f */    select stuff(‘abcdefgf‘, 2, 6, ‘Hello‘)        /* 結果為:aHellof */

9. replicate():以指定的次數重複字串值

replicate(string_expression ,integer_expression)

select replicate(‘abc‘, 4)  /* 結果為:abcabcabcabc */

10. charindex():返回字串中指定運算式的開始位置

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

expression1在expression2 中的開始位置

select charindex(‘H‘,‘elloHWorldHabc‘)    /* 結果為:5 */

11. patindex():返回指定“運算式中模式”第一次出現的開始位置

patindex(‘%pattern%‘, expression):返回指定“運算式中某模式”第一次出現的起始位置; 如果在全部有效文本和字元資料類型中沒有找到該模式,則返回零。

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

12. unicode():返回輸入運算式的第一個字元的整數值

unicode(‘ncharacter_expression‘):‘ncharacter_expression‘ 為 nchar 或 nvarchar 運算式。

select unicode(‘a‘)        /* 結果為:97 */select unicode(‘abc‘)    /* 結果為:97 */

13. str():返回由數字資料轉換來的字元資料

str(float_expression, length ,decimal ) float_expression:帶小數點的近似數字 (float) 資料類型的運算式。 length:總長度。它包括小數點、符號、數字以及空格。預設值為 10。 * decimal:小數點右邊的小數位元。decimal 必須小於等於 16。如果 decimal 大於 16,則將結果截斷為小數點右邊的 16 位。

select str(1234.436, 3)         /* 結果為:‘**‘;當運算式超出指定長度時返回‘**‘ */select len(str(1234.436, 3))     /* 結果為:3 */    select str(123.436), len(str(123.436))              /* 結果為:‘123‘, 10 */select str(123.436, 6), len(str(123.436, 6))        /* 結果為:‘123‘, 6 */select str(123.436, 6, 1), len(str(123.436,6, 1))   /* 結果為:‘123.4‘, 6 */

14. ascii():得到字元的ASCII碼

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

select ascii(‘H‘)               /* 結果為:72 */select ascii(‘HelloWorld!‘)     /* 結果為:72 */

15. Char():得到一個與ASCII碼數字對應的字元

Char(integer_expression):integer_expression 介於 0 和 255 之間的整數。如果該整數運算式不在此範圍內,將返回 NULL 值。

select Char(72)     /* 結果為:H */

16. nchar():返回返回具有指定的整數代碼的 Unicode 字元

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

select nchar(20013)        /* 結果為:‘中‘ */select NCHAR(72)        /* 結果為:‘H‘ */

17. quotename() 轉義

參考《SqlServer中quotename用法與執行個體》

18. soundex():發音匹配度

有時候我們並不知道一個人姓名的拼字,但是我們知道他的發音,這時我們可以進行發音的匹配度測試。 soundex():用於計算一個字串的發音特徵性,這個特徵值為一個四個字元的字串,特徵性的第一個字元總是初始字串中的第一個字元,而後是一個三位元的數值。

select sname, soundex(sname) from student

結果為:

發音特徵值的含義非常複雜,如果要根據兩個發音特徵值來分析兩個字串的發音相似性的話非常麻煩。

可以使用difference()來簡化兩個字串的發音相似性比較,它可以計算兩個字串的發音特徵值,並且比較它們,然後返回一個0~4之間的值來反映兩個字串的發音相似性,這個值越大則表示兩個字串的發音相似性越大。

select sname, soundex(sname), difference(sname,‘Herry‘) from stu

結果為:

SQL Server字串函數(超實用)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.