天天看點

sql語句學習筆記(6)-常用字元串操作函數

這些函數在系統函數可以找到。下面是我練習時寫的代碼,包含了常用的字元串操作函數

--int charindex('要找的字元串','源字元串',開始位置),擷取字元串中指定字元串的位置

declare @str varchar(50)

set @str='江蘇|湖北|湖南|山東|山西|河南|河北'

print '原始輸入資料:'[email protected]

print Charindex('湖',@str,1)--輸出為4(字元串操作中的起始位置是1而不是0)

--差別于charindex,是一種模式比對

--參考資料http://msdn.microsoft.com/zh-cn/library/ms190184.aspx

declare @str varchar(50)

set @str='江蘇|湖北|湖南|山東|山西|河南|河北'

print '原始輸入資料:'[email protected]

print patindex('%湖%',@str)--輸出4

--string substring('源字元串',起始位置,長度),從源字元串中指定位置開始擷取指定長度的字元串

declare @str varchar(50)

set @str='江蘇|湖北|湖南|山東|山西|河南|河北'

print '原始輸入資料:'[email protected]

print substring(@str,1,2)--列印出‘江蘇’

--string replace(‘源字元串’'要被替換的字元串',‘要替換的字元串’)

declare @str varchar(50)

set @str='江蘇|湖北|湖南|山東|山西|河南|河北'

print '原始輸入資料:'[email protected]

print replace(@str,'|','+')--将源字元串中的-換成了+

--int len('源字元串'):求指定字元串的長度

declare @str varchar(50)

set @str='江蘇|湖北|湖南|山東|山西|河南|河北'

print '字元串的長度為:'+convert(varchar(4),len(@str))--輸出20

--string upper('源字元串'):轉換成大寫,string lower('源字元串'):轉換成小寫

declare @str varchar(10)

set @str='Sql Server'

print upper(@str)--輸出為SQL SERVER

print lower(@str)--輸出為sql server

--string ltrim('源字元串'):傳回去掉前導空格後的字元串

declare @str varchar(10)

set @str='  Sql Server'

print ltrim(@str)--輸出:Sql Server

--string left('源字元串',指定長度):從源字元串中最左邊傳回指定長度的字元串

--string right('源字元串',指定長度):從源字元串中最右邊放邊傳回指定長度的字元串

declare @str varchar(50)

set @str='江蘇|湖北|湖南|山東|山西|河南|河北'

print left(@str,5)--輸出:江蘇|湖北

print right(@str,5)--輸出:河南|河北

--string reverser('源字元串'):反序字元創

declare @str varchar(50)

set @str='江蘇|湖北|湖南|山東|山西|河南|河北'

print reverse(@str)--輸出:北河|南河|西山|東山|南湖|北湖|蘇江

--int difference('源字元串1',‘源字元串2’),傳回2個字元串的相似度,級别從0-4一次遞增

declare @str varchar(50),@str2 varchar(50)

set @str='cd'

set @str2='abced'

print difference(@str,@str2)--輸出2

--string str(float,int int):傳回有數值資料轉化成了字元串,其中float為數值表達式,

--後面2個int型資料分别為:長度和小數位數

declare @num float

set @num=12356.654321478

print str(@num,7,1)--輸出:123456.7(四舍五入)

--string stuff('源字元串',開始位置,長度,'替換表達式')

--從指定位置開始(下一個才被替換,開始位置不被替換),使用替換字元串

--替換掉源字元串中指定長度的内容

declare @str varchar(50)

set @str='江蘇|湖北|湖南|山東|山西|河南|河北'

print stuff(@str,3,16,'pk')--輸出江蘇pk河北