Sql Server函數全解<一>字串函數

來源:互聯網
上載者:User

標籤:

Sql Server字串函數

字串函數用於對字元和二進位字元進行各種操作

1.ASCII()函數

 ASCII(character_expression)函數用於返回字串運算式中最左側的ASCII代碼值。參數character_expression必須是一個char或varchar類型的字串運算式。
eg: select ASCII(‘s‘),ASCII(‘sql‘),ASCII(‘1‘);
執行結果:
字元‘s‘的ASCII值為115,所以第一行和第二行返回結果相同,對於第三條語句中的純數位字串,可以不用單引號括起來。

 

2.CHAR()函數

 CHAR(integer_expression)函數將整數類型的ASCII值轉換為對應的字元,integer_expression是一個介於0~255之間的整數。如果該整數運算式不在此範圍內,將返回null值。
eg: select CHAR(115),CHAR(49);
可以看到,這裡返回的值與ASCII函數的傳回值正好相反.

3.LEFT()函數

  LEFT(character_expression,integer_expression)函數返回字串左邊開始指定個數的字串、字元或者位元據運算式。character_expression是字串運算式,可以是常量,變數或欄位。integer_expression為整數,指定character_expression將返回的字元數。 
eg: select LEFT(‘football‘,4);
 函數返回字串“football”左邊開始的長度為4的子字串,結果為“foot”,可見索引從1開始。

4.RIGHT()函數

 與LEFT()函數相反,RIGHT(character_expression,integer_expression)返回字串character_expression最右邊integer_expression個字元。
eg: select RIGHT(‘football‘,4);
 函數返回字元竄"football"右邊開始的長度為4的字串,結果為“ball”,索引也是從1開始的。

5.LTRIM()函數

  LTRIM(character_expression)用於除去字串左邊多餘的空格,字元資料運算式character_expression是一個字串運算式,可以是常量,變數,也可以是字元欄位或者位元據列。
eg: select ‘(‘ + ‘ book ‘ + ‘)‘, ‘(‘ +LTRIM( ‘ book ‘) + ‘)‘;
 對比兩個值,LTRIM只刪除字串左邊的空格,右邊的空格不會被刪除.

6.RTRIM()函數

  RTRIM(character_expression)用於除去字串右邊多餘的空格,字元資料運算式character_expression是一個字串運算式,可以是常量,變數,也可以是字元欄位或者位元據列。
eg:  select ‘(‘ +‘ book ‘ +‘)‘,‘(‘ +RTRIM(‘ book ‘) +‘)‘;
 對比兩個值,LTRIM只刪除字串右邊的空格,左邊的空格不會被刪除.

7.STR()函數

 STR(float_expression [ , length [ , decimal ] ])函數用於將數值資料轉換為字元資料。float_expression是一個帶有小數點的近似數字(float)資料類型的運算式。length表示總長度。它包括小數點、符號、數字以及空格,預設值為10。decimal指定小數點後的位元,decimal必須小於或等於16。如果decimal大於16,則會截斷結果,使其保持小數點後有16為。
eg: select STR(3141.59,6,1),STR(123.45,2,2)
 第一條語句6個數字和一個小數點組成的數值3141.59轉換為長度為6的字串,數位小數部分舍入為1個小數位,第二條語句中的運算式超出指定的總長度時,返回的字串為指定長度的兩個**。

8.字串逆序的函數REVERSE()

 REVERSE(s)將字串s反轉,返回的字串的順序和s的順序相反。
eg: select REVERSE(‘abc‘);
 由結果可以看到,字串“abc”經過REVERSE函數處理後,所有的字串順序被反轉,結果為“cba”;

9.計算字串的長度函數LEN(str)

 返回字元運算式中的字元數。如果字串中包含前置空格和尾隨空格,則函數將它們包含在內。LEN對相同的單位元組和雙位元組字元串返回相同的值。
eg: select LEN(‘no‘),LEN(‘日期‘),LEN(12345);
 可以看到,LEN函數在對待英文字元和漢字字元時,返回的字串長度是相同的,一個漢字也算作一個字元。LEN函數在處理純數字也將其當作字串,但是純數字可以不實用引號.

10.匹配字串開始位置的函數CHARINDEX(str1,str,[start])

 CHARINDEX(str1,str,[start])函數返回子字串str1在字串str中的開始位置,start為搜尋的開始位置,如果指定start參數,則從指定位置開始搜尋;如果不指定start參數或者指定為0或者負值,則從字串開始位置搜尋。
 eg: select CHARINDEX(‘a‘,‘banana‘),CHARINDEX(‘a‘,‘banana‘,4), CHARINDEX(‘na‘,‘banana‘, 4);

 CHARINDEX(‘a‘,‘banana‘)返回字串‘banana‘中子字串‘a’ 第一次出現的位置,結果為2;
 CHARINDEX(‘a‘,‘banana‘,4)返回字串‘banana‘中從第4個位置開始子字串‘a’的位置,結果為4;
 CHARINDEX(‘na‘,‘banana‘, 4)返回從第4個位置開始子字串‘na’第一次出現的位置,結果為5

11.SUBSTRING()函數

 SUBSTRING(value_expression,start_expression,length_expression)函數返回字元運算式,二進位運算式,文本運算式或映像運算式的一部分。
 value_expression是character、binary、text、ntext或image運算式。
 start_expression指定返回字元的起始位置的整數或運算式。如果start_expression小於0,或建置錯誤並終止語句。如果 start_expression大於值運算式的字元數,將返回一個零長度的運算式。
 length_expression是正整數或指定要返回的value_expression的字元數運算式。如果length_expression是負數,會建置錯誤並終止語句,如果start_expression與length_expression的總和大於value_expression中的字元數,則返回整個值運算式。
eg: select SUBSTRING (‘breakfast‘1,5), SUBSTRING(‘breakfast‘ , LEN(‘breakfast‘)/2, LEN(‘breakfast‘));
 第一條語句返回從第一個位置開始長度為5的字串,結果為"break",第二條語句返回整個字串的後半段字串,結果為"akfast"

12.LOWER()

 LOWER(character_expression)將大寫字元資料轉換為小寫字元資料後返回字元運算式。character_expression是指定要進行轉換的字串。
eg: select LOWER(‘BEAUTIFUL‘),LOWER(‘Well‘);
由結果可以看到,經過LOWER()函數轉換之後,大寫字母都變成小寫了,小寫字母保持不變.

13.UPPER()函數

 UPPER(character_expression)將小寫字元資料轉換為大寫字元資料後返回字元運算式。character_expression指定要進行轉換的字串。
eg: select UPPER(‘black‘),UPPER(‘Black‘);
 由結果可以看到,經過UPPER函數轉換後,小寫字母都變成了大寫,大寫字母保持不變。

14.替換函數REPLACE(s,s1,s2)

 REPLACE(s,s1,s2)使用字串s2替代字串s中的s1.
 eg: select REPLACE(‘xxx.sqlserver2012.com‘,‘x‘,‘w‘);
 EPLACE(‘xxx.sqlserver2012.com‘,‘x‘,‘w‘)將"xxx.sqlserver2012.com"字串中的‘x‘替換為‘w‘字元,結果為"www.sqlserver2012.com";

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.