一.字元串函數 參數character_expression:由字元數據組成的字母數字表達式,可以是常量或變數,也可以是字元列或二進位數據列 參數integer_expression:是正整數,如果 integer_expression 為負,則返回空字元串 1.SubString():截取指定的字 ...
一.字元串函數
參數character_expression:由字元數據組成的字母數字表達式,可以是常量或變數,也可以是字元列或二進位數據列
參數integer_expression:是正整數,如果 integer_expression 為負,則返回空字元串
1.SubString():截取指定的字元串
--substring(character_expression,integer_experssion,integer_expression) --character_expression: 表達式(varchar、nvarchar、char、text、ntext、varbinary、image) --integer_experssion:開始位置(bigint) --integer_expression 長度(bigint)不能為負數 --返回字元表達式、二進位表達式、文本表達式或者圖像表達式的一部分(varchar、nvarchar、char、text、ntext、varbinary、image) --簡而言之:substring(字元串,開始位置,截取長度) select substring('Hello',1,4) --返回Hell select StuName,substring(StuName,1,2) as '姓名的前兩位' from Student
2.Replace ():替換字元串
--replace(character_expression,searchstring,replacementstring) --character_expression:是函數要搜索的有效字元表達式(varchar,nvarchar) --character_expression:是函數嘗試定位的有效字元表達式(varchar,nvarchar) --replacementstring:是用作替換表達式的有效字元表達式(varchar,nvarchar) --返回用第三個表達式替換第一個表達式中出現的所有第二個表達式 --簡而言之:replace(字元串,需要被替換的字元串,替換成的字元串) select replace('MingRMRM','RM','Ri') --返回MingRiRi select replace('1234','1','2') --返回2234
3.Left():取左邊指定個數的字元
--left(character_expression,integer_expression) --character_expression:字元串或者二進位數據表達式(varchar,nvarchar) --integer_expression:指定character_expression將返回的字元數,不能為負數(int) --返回字元表達式中最左側指定數目的字元 --簡而言之:left(字元串,指定最左側返回的數目) select left('中華有為',2) --返回中華 select left(StuName,1) from Student --返回姓名的第一個字
4.Right():取右邊指定個數的字元
--right(character_expression,integer_expression) --character_expression:字元串或者二進位數據表達式(varchar,nvarchar) --integer_expression:指定character_expression將返回的字元數,不能為負數(int) --返回字元表達式中最右側指定數目的字元 --簡而言之:right(字元串,指定最右側返回的數目) select right('中華有為',2) --返回有為 select right(StuName,1) from Student --返回姓名的最後一個字
5.ASCII():獲取ASCII碼
--ASCII(character_expression) --character_expression:char或者varchar類型的表達式(char、varchar) --返回字元表達式中最左側的字元的ASCII代碼 --返回類型:int --註意:ASCII碼共127個,其中8、9、10、13分別轉換為退格、製表、換行和回車字元 select ASCII('A') --返回ASCII碼65 按鍵A select ASCII(' ') --返回ASCII碼32 按鍵[space] 空格鍵
6.Char():轉換成字元
--char(integer_expression) --將整數ASCII代碼轉換成字元串 select char(65) --返回A select char(32) --返回空格
7.CharIndex():返回字元串起始位置
--charindex(character_expression1,character_expression2,[,start_location]) --character_expression1:包含要查找的序列的字元串表達式 --character_expression2:要搜索的字元表達式 --start_location:開始位置,如果未指定則將expression2的開頭搜索 --返回字元串中指定表達式的起始位置 --[]裡面的內容說明可以省略,預設情況下,說明用‘[]’引用 select charindex('為','中華有為')--返回4 select charindex('為','中華有為',5) --返回0 搜索字元串的位置值有4位 select charindex('為','中華有為',2)--返回4 返回的是字元串所在搜索字元串的位置
8.PatIndex()返回表達式模式的字元串的起始位置
--patindex(character_expression1,characterexpression2) --character_expression1:搜索模式文字 --character_expression2:要搜索的表達式 -- 精確匹配,完全匹配1,不完全匹配0 --模糊匹配,返回從第幾位開始匹配 --返回指定表達式模式的第一次出現的開始位置 select patindex('%a%','123456a') --返回6 模糊匹配 select patindex('a','123456a') --返回0 精確匹配
9.Len():返回字元個數
--len(character_expression) --character_expression:表示要處理的表達式(varchar、nvarchar) --返回字元表達式中的字元數(int) select len('abcd')--返回4 select len(12345)--返回5
10.Stuff():在一個字元串中,刪除指定長度的字元,併在該位置插入一個新的字元串
--stuff(character_expression,bigint_expression1,bigint_expression2,character_expression1) --character_expression:要搜索的表達式(varchar、nvarchar、varbinary) --integer_expression1:開始位置 --integer_expression2:字元數 --character_expression1:替換的表達式 select stuff('abcdefg',3,2,'aa') --返回abaaefg
11.Difference():SOUNDEX值之差
--difference ( character_expression , character_expression ) --character_expression:類型 char 或 varchar 的表達式 --以整數返回兩個字元表達式的SOUNDEX值之差,返回的值從 0 到 4 不等,4 表示 SOUNDEX 值相同 --返回類型:int SELECT DIFFERENCE('Test', 'Test') --4
12.Soundex():由四個字元表示的soundex代碼
--soundex(character_expression) --返回由四個字元表示的soundex代碼 select soundex('abcd') --返回A120
13.Lower():大寫字母轉小寫字母
--lower(character_expression) --character_expression:字元串或者二進位數據表達式(varchar、nvarchar) --返回將大寫字元轉換為小寫字元的字元表達式 select lower('ABCD') --返回abcd select lower('張San') --返回張san
14.Upper():小寫字母轉大寫字母
--upper(character_expression) --character_expression:字元串或者二進位數據表達式(varchar、nvarchar) --返回將小寫字元轉換為大寫字元的字元表達式 select upper('abcd') --返回ABCD select upper('張San') --返回張SAN
15.Ltrim():清除左邊字元的空格
--ltrim(character_expression) --character_expression(varchar、nvarchar) --返回刪除了前導空格之後的字元表達式 select ltrim(' Test Test ') --返回Test Test
16.Rtrim():清除右邊字元的空格
--rtrim(character_expression) --character_expression(varchar、nvarchar) --返回截斷了所有尾隨空格之後的字元表達式 select rtrim(' TestTest ') --返回 TestTest
17.Nchar():給定的整數代碼的Unicode字元
--nchar(integer_expression) --integer_expression(int) --返回具有給定的整數代碼的Unicode字元 --Unicode:統一碼、萬國碼、單一碼 select nchar(100) --返回d
18.Quotename():返回帶有分隔符的 Unicode 字元串,主要作用就是在SQL語句中,給列名、表名等加個[]、’’
--quotename(character_expression,[,character_expression1]) --character_expression,unicode字元數據構成的字元串,character_expression是sysname值 --character_expression1:引號字元,如果未指定則使用方括弧作為分隔符([ ]) --quotename()的主要作用就是在存儲過程中,給列名、表名等加個[]、’’等以保證sql語句能正常執行 select quotename('stuname','''') --返回'stuname' select quotename('student')--返回[student]
19.Replicate():按指定次數重覆字元表達式
--replicate(character_expression ,integer_expression) --character_expression:需要複製的表達式 --integer_expression:複製次數 select replicate('abcd',3) --返回abcdabcdabcd
20.Reverse():返回字元表達式的逆向表達式
--reverse(character_expression) --返回字元表達式的逆向表達式 select reverse('abcd') --返回dcba
21.Space():返回由重覆空格組成的字元串
--space(integer_expression) --返回由重覆空格組成的字元串 --返回類型:char select space(2)--返回2個空格
22.Str():將數值表達式轉換字元表達式
--str(float_expression[,length[,demical_expression]]) --length:是總長度,包括小數點、符號、數字或空格。預設值為 10 --demical_expression:小數點右邊的位數 --返回從數值表達式轉換而來的字元表達式 --返回類型:char select str(23.35,8,3) --返回 23.350 select len(str(23.35,8,3)) --返回8
23.UniCode():表達式第一個字元Unicode的整數值
--unicode(character_expression) --character_expression:需要轉換的表達式 --返回表達式第一個字元Unicode的整數值 select unicode('abcd') --返回97
24.String_Split():分隔字元串,返回表,列名為value
--string_split(character_expresstion1,character_expresstion2) --character_expresstion1:需要分隔的字元串 --character_expresstion2:分隔符 --返回子字元串的單列的表(table) 該列名為“value” select value from string_split('jsp-asp','-')