一.字串函式
引數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','-')
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/15027.html
標籤:SQL Server
下一篇:資料庫與資訊系統經典例題
