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

字符串函數用於對字符和二進制字符進行各類操做sql

1.ASCII()函數

 ASCII(character_expression)函數用於返回字符串表達式中最左側的ASCII代碼值。參數character_expression必須是一個char或varchar類型的字符串表達式。
 eg: select ASCII('s'),ASCII('sql'),ASCII('1');
執行結果如圖:
字符's'的ASCII值爲115,因此第一行和第二行返回結果相同,對於第三條語句中的純數字的字符串,能夠不用單引號括起來。express

 

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開始。sqlserver

4.RIGHT()函數

 與LEFT()函數相反,RIGHT(character_expression,integer_expression)返回字符串character_expression最右邊integer_expression個字符。
eg: select RIGHT('football',4);
 函數返回字符竄"football"右邊開始的長度爲4的字符串,結果爲「ball」,索引也是從1開始的。3d

5.LTRIM()函數

  LTRIM(character_expression)用於除去字符串左邊多餘的空格,字符數據表達式character_expression是一個字符串表達式,能夠是常量,變量,也能夠是字符字段或者二進制數據列。
eg: select '(' + ' book ' + ')', '(' +LTRIM( ' book ') + ')';
 對比兩個值,LTRIM只刪除字符串左邊的空格,右邊的空格不會被刪除.server

6.RTRIM()函數

  RTRIM(character_expression)用於除去字符串右邊多餘的空格,字符數據表達式character_expression是一個字符串表達式,能夠是常量,變量,也能夠是字符字段或者二進制數據列。
eg:  select '(' +' book ' +')','(' +RTRIM(' book ') +')';
 對比兩個值,LTRIM只刪除字符串右邊的空格,左邊的空格不會被刪除.htm

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個小數位,第二條語句中的表達式超出指定的總長度時,返回的字符串爲指定長度的兩個**。blog

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";

相關文章
相關標籤/搜索