Sql Server函數全解(1):字符串函數

ygw3 9年前發布 | 10K 次閱讀 SQL Server 數據庫服務器

原文出處: 阿赫瓦里   


字符串函數用于對字符和二進制字符進行各種操作

1.ASCII()函數
ASCII(character_expression)函數用于返回字符串表達式中最左側的ASCII代碼值。參數character_expression必須是一個char或varchar類型的字符串表達式。

 eg: select ASCII('s'),ASCII('sql'),ASCII('1');

執行結果如圖:
字符’s'的ASCII值為115,所以第一行和第二行返回結果相同,對于第三條語句中的純數字的字符串,可以不用單引號括起來。

 Sql Server函數全解(1):字符串函數

2.CHAR()函數
CHAR(integer_expression)函數將整數類型的ASCII值轉換為對應的字符,integer_expression是一個介于0~255之間的整數。如果該整數表達式不在此范圍內,將返回null值。

eg: select CHAR(115),CHAR(49);

可以看到,這里返回的值與ASCII函數的返回值正好相反.

 Sql Server函數全解(1):字符串函數

3.LEFT()函數
LEFT(character_expression,integer_expression)函數返回字符串左邊開始指定個數的字符串、字符或者二進制數據表達式。character_expression是字符串表達式,可以是常量,變量或字段。integer_expression為整數,指定character_expression將返回的字符數。

eg:?select LEFT('football',4);

函數返回字符串“football”左邊開始的長度為4的子字符串,結果為“foot”,可見索引從1開始。

 Sql Server函數全解(1):字符串函數

4.RIGHT()函數
與LEFT()函數相反,RIGHT(character_expression,integer_expression)返回字符串character_expression最右邊integer_expression個字符。

eg: select RIGHT('football',4);

函數返回字符竄”football”右邊開始的長度為4的字符串,結果為“ball”,索引也是從1開始的。

 Sql Server函數全解(1):字符串函數

5.LTRIM()函數
LTRIM(character_expression)用于除去字符串左邊多余的空格,字符數據表達式character_expression是一個字符串表達式,可以是常量,變量,也可以是字符字段或者二進制數據列。

eg: select '(' + ' book ' + ')', '(' +LTRIM( ' book ') + ')';

對比兩個值,LTRIM只刪除字符串左邊的空格,右邊的空格不會被刪除.

 Sql Server函數全解(1):字符串函數

6.RTRIM()函數
RTRIM(character_expression)用于除去字符串右邊多余的空格,字符數據表達式character_expression是一個字符串表達式,可以是常量,變量,也可以是字符字段或者二進制數據列。

eg: ?select '(' +' book ' +')','(' +RTRIM(' book ') +')';

對比兩個值,LTRIM只刪除字符串右邊的空格,左邊的空格不會被刪除.

 Sql Server函數全解(1):字符串函數

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

 Sql Server函數全解(1):字符串函數

回到頂部
8.字符串逆序的函數REVERSE()
REVERSE(s)將字符串s反轉,返回的字符串的順序和s的順序相反。

 eg: select REVERSE('abc');

由結果可以看到,字符串“abc”經過REVERSE函數處理后,所有的字符串順序被反轉,結果為“cba”;

 Sql Server函數全解(1):字符串函數

9.計算字符串的長度函數LEN(str)
返回字符表達式中的字符數。如果字符串中包含前導空格和尾隨空格,則函數將它們包含在內。LEN對相同的單字節和雙字節字符串返回相同的值。

eg: select LEN('no'),LEN('日期'),LEN(12345);

可以看到,LEN函數在對待英文字符和漢字字符時,返回的字符串長度是相同的,一個漢字也算作一個字符。LEN函數在處理純數字也將其當作字符串,但是純數字可以不實用引號.

 Sql Server函數全解(1):字符串函數

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

 Sql Server函數全解(1):字符串函數

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”

 Sql Server函數全解(1):字符串函數

12.LOWER()
LOWER(character_expression)將大寫字符數據轉換為小寫字符數據后返回字符表達式。character_expression是指定要進行轉換的字符串。

eg: select LOWER('BEAUTIFUL'),LOWER('Well');

由結果可以看到,經過LOWER()函數轉換之后,大寫字母都變成小寫了,小寫字母保持不變.

 Sql Server函數全解(1):字符串函數

13.UPPER()函數
UPPER(character_expression)將小寫字符數據轉換為大寫字符數據后返回字符表達式。character_expression指定要進行轉換的字符串。

eg: select UPPER('black'),UPPER('Black');

由結果可以看到,經過UPPER函數轉換后,小寫字母都變成了大寫,大寫字母保持不變。

 Sql Server函數全解(1):字符串函數

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函數全解(1):字符串函數

上面例子的整體代碼:

--字符串函數
--1.ASCII()函數
select ASCII('s'),ASCII('sql'),ASCII(1);
--2.CHAR()函數
select CHAR(115),CHAR(49);
--3.LEFT()函數
select LEFT('football',4);
--4.RIGHT()函數
select RIGHT('football',4);
--5.LTRIM()函數
select '(' +' book ' +')','(' +LTRIM(' book ') +')';
--6.RTRIM()函數
select '(' +' book ' +')','(' +RTRIM(' book ') +')';
--7.STR()函數
select STR(3141.59,6,1),STR(123.45,2,2);
--8.字符串逆序的函數REVERSE()
select REVERSE('abc');
--9.計算字符串的長度函數LEN(str)
select LEN('no'),LEN('日期'),LEN(12345);
--10.匹配字符串開始位置的函數CHARINDEX(str1,str,[start])
select CHARINDEX('a','banana'),CHARINDEX('a','banana',4), 
CHARINDEX('na','banana', 4);
--11.SUBSTRING()函數
select SUBSTRING('breakfast',1,5), 
SUBSTRING('breakfast',LEN('breakfast')/2,LEN('breakfast'));
--12.LOWER()
select LOWER('BEAUTIFUL'),LOWER('Well');
--13.UPPER()函數
select UPPER('black'),UPPER('Black');
--14.替換函數REPLACE(s,s1,s2)
select REPLACE('xxx.sqlserver2012.com','x','w');
 本文由用戶 ygw3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!