Sql Server函式全解(一)字串函式
閱讀目錄
- 1.ASCII()函式
- 2.CHAR()函式
- 3.LEFT()函式
- 4.RIGHT()函式
- 5.LTRIM()函式
- 6.RTRIM()函式
- 7.STR()函式
- 8.字串逆序的函式REVERSE()
- 9.計算字串的長度函式LEN(str)
- 10.匹配字串開始位置的函式CHARINDEX(str1,str,[start])
- 11.SUBSTRING()函式
- 12.LOWER()
- 13.UPPER()函式
- 14.替換函式REPLACE(s,s1,s2)
字串函式用于對字符和二進制字符進行各種操作
回到頂部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";

上面例子的整體代碼:
--字串函式
--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');
轉自:http://www.cnblogs.com/selene/
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1208.html
標籤:SQL Server
上一篇:筆記1-字串函式
