declare @string varchar(200) --需要統(tǒng)計的字符串

成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設計制作、成都網(wǎng)站制作、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務海州,10年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792
declare @i int --循環(huán)變量
declare @len int --字符串長度
declare @tempstring varchar(10)--臨時截取的字符串
declare @cnt int --子串數(shù)量
set @string='a bb ccc dddd eeeee ffffff' --定義字符串,如果是取表中字符串,直接select @string=columnname from table
set @i=1 --定義循環(huán)變量初始值
set select @len=len(@string)--取得字符串長度
set @tempstring='' --初始化@tempstring變量
set @cnt=1 --初始化子串數(shù)量
--一個簡單的循環(huán)就能實現(xiàn)了
while @i=@len
begin
select @tempstring= substring(@string,@i,1)
if (@tempstring=' ')
begin
set @cnt=@cnt+1
end
set @i=@i+1
select @tempstring,@cnt,@cnt,@i
end
start
指定返回字符的起始位置的整數(shù)或 bigint 表達式。
如果 start 小于 1,則返回的表達式的起始位置為
expression 中指定的第一個字符。
在這種情況下,返回的字符數(shù)是 start 與 length 的和減去 1 所得的值與 0 這兩者中的較大值。
如果 start
大于值表達式中的字符數(shù),將返回一個零長度的表達式。
length
是正整數(shù)或指定要返回的 expression 的字符數(shù)的
bigint 表達式。
如果 length 是負數(shù),會生成錯誤并終止語句。
如果 start 與 length 的和大于 expression
中的字符數(shù),則返回起始位置為 start 的整個值表達式。
CHARINDEX(C1,C2[,I])
【功能】在一個字符串中搜索指定的字符,返回發(fā)現(xiàn)指定的字符的位置;
【說明】多字節(jié)符(漢字、全角符等),按1個字符計算
【參數(shù)】C1希望搜索的字符串
C2被搜索的字符串
I 搜索的開始位置,默認為1
【返回值】數(shù)值
【實例】
select charindex('c','abcdefgc',4)
1、LEFT()? 從左邊截
語法:LEFT(character,integer)? ??返回 從字符串左邊開始 指定個數(shù)的字符
說明:參數(shù)1:要截取的字符串,參數(shù)2:截取字符個數(shù)
示例:selectLEFT('SqlServer_2008',3)
結(jié)果:Sql
2.RIGHT()? 從右邊截
語法:RIGHT(character,integer)? ?返回 從字符串右邊開始 指定個數(shù)的字符
說明:參數(shù)1:要截取的字符串,參數(shù)2:截取字符個數(shù)
示例:selectLEFT('SqlServer_2008',4)
結(jié)果:2008
3.SUBSTRING()? ?中間截
語法:SUBSTRING(character,start,length)? ?返回從字符串 中間 的字符
說明:參數(shù)1:要截取的字符串,參數(shù)2:開始截取的位數(shù),參數(shù)3:要截取的字符長度
示例:selectSUBSTRING('SqlServer_2008',4,6)--4)
結(jié)果:Server
以上。
感謝二位!
不同的數(shù)據(jù)庫,相應的字符串拼接方式不同,通過對比加深一下記憶。
一、MySQL字符串拼接
1、CONCAT函數(shù)
語法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字符串,定長與不定長均可以
連接兩個字符串
連接多個字符串
2、"+"操作符
連接兩個字符串
連接多個字符串
3、假如其中一個字段為NULL,則用結(jié)果用空格代替NULL。
二、Oracle字符串拼接
1、CONCAT函數(shù)
語法格式:CONCAT(char c1, char c2) ,其中char代表字符串,定長與不定長均可以
連接兩個字符串
連接多個字符串
使用CONCAT函數(shù)的嵌套實現(xiàn)。
2、"||"操作符
連接兩個字符串
連接多個字符串
3、假如其中一個字段為NULL,則用結(jié)果用空格代替NULL。
擴展資料
字符串函數(shù)(String processing function)也叫字符串處理函數(shù),指的是編程語言中用來進行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進行字符串拷貝,計算長度,字符查找等的函數(shù)。
字符串主要用于編程,概念說明、函數(shù)解釋、用法詳述見正文,這里補充一點:字符串在存儲上類似字符數(shù)組,所以它每一位的單個元素都是可以提取的,如s=“abcdefghij”,則s[1]=“a”,s[10]="j"。
而字符串的零位正是它的長度,如s[0]=10(※上述功能Ansistring沒有。),這可以給我們提供很多方便,如高精度運算時每一位都可以轉(zhuǎn)化為數(shù)字存入數(shù)組。
字符串函數(shù)的應用
1、連接運算 concat(s1,s2,s3…sn) 相當于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 從字符串s中截取第I個字符開始后的長度為l的子串。
例:copy(‘a(chǎn)bdag’,2,3)=’bda’
3、刪除子串。過程 Delete(s,I,l) 從字符串s中刪除第I個字符開始后的長度為l的子串。
例:s:=’abcde’;delete(s,2,3);結(jié)果s:=’ae’
4、插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置
例:s:=abc;insert(‘12’,s,2);結(jié)果s:=’a12bc’
5、求字符串長度 length(s) 例:length(‘12abc’)=5
在ASP中 求字符串長度用 len(s)例: len("abc12")=5
6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,則返回s1的第一個字符在s2中的位置,若不是子串,則返回0.
例:pos(‘a(chǎn)b’,’12abcd’)=3
7、字符的大寫轉(zhuǎn)換。Upcase(ch) 求字符ch的大寫體。
例:upcase(‘a(chǎn)’)=’A’
8、數(shù)值轉(zhuǎn)換為數(shù)串。 過程 Str(x,s) 把數(shù)值x化為數(shù)串s.
例:str(12345,s); 結(jié)果s=’12345’
9、數(shù)串轉(zhuǎn)換為數(shù)值。 過程val(s,x,I) 把數(shù)串s轉(zhuǎn)化為數(shù)值x,如果成功則I=0,不成功則I為無效字符的序數(shù),第三個參數(shù)也可不傳
例:val(‘1234’,x,I);結(jié)果 x:=1234
參考資料:百度百科?字符串函數(shù)的應用
有啊,charindex函數(shù)即可。
如:
select?charindex('愛你','我愛你')
查詢結(jié)果如圖:
這個2就表示,愛你在我愛你出現(xiàn)的字符起始位,為第二位。如果反過來
select?charindex('我愛你','愛你')
愛你里是不包含我愛你的,所以就顯示為0
當前文章:sqlserver中子串的簡單介紹
分享鏈接:http://chinadenli.net/article33/dsiidss.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站維護、Google、網(wǎng)站策劃、網(wǎng)站排名、云服務器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)