這些函數在系統函數可以找到。下面是我練習時寫的代碼,包含了常用的字元串操作函數
--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河北