SQL函式怎樣算出字串逗號隔開的字串數量

2021-04-18 08:29:00 字數 3095 閱讀 6330

1樓:

我是這樣想的,想計算出 逗號在 字串中出現的次數,再加一,就是了。

sql> select length('a,7,34,4,bb') - length(replace('a,7,34,4,bb', ',', '')) + 1 from dual;

length('a,7,34,4,bb')-length(r------------------------------5

2樓:千鋒教育

sql中可以自定義函式來統計逗號隔開的字串的數量:

參考如下:

drop function search_dh

gocreate function search_dh(@str varchar(max))

returns int--設定返回值是returns

asbegin

declare @result int --返回逗號個數

declare @j int

set @result = 0

set @j = 1

while @j

begin

if substring(@str,@j,1) = ',' --@j是開始位置,1位置引數是長度值

begin

set @result = @result+1

endset @j = @j+1 --如果出現無限迴圈請檢查引數是否加1以及位置問題

endreturn @result --返回結果

end用法:

select dbo.search_dh ('a,b,c') --引用自定義函式時需要加上dbo.字首

select x = substring('abcdef',2, 2)

3樓:

人家要的是數量,其實你可以把理解為長度

直接 用len

foxeample:

select len(a,7,34,4,bb) from table

sql欄位裡有逗號隔開的資料,怎麼取值

4樓:海天盛

sql欄位有逗號隔開,資料取值的方法。

如下參考:

1.查詢資料庫表的所有欄位,直接使用select語句,如下圖。

2.查詢資料庫表部分的欄位,可以使用select欄位命令,從資料庫表中選擇欄位名度。

3.根據查詢的條件,在where之後使用條件,從資料庫表中選擇欄位名所在的條件。

4.使用distinct命令查詢資料庫欄位,以記錄未重複的結果,如下圖所示。

5.查詢資料庫表資料之前有多少條,可以使用top命令,從資料庫表中選擇*號。

6.查詢資料庫表有時為了區分欄位,需要回答欄位名,可以用as,從資料庫表中選擇欄位名作為欄位名。

5樓:匿名使用者

--測試資料

with table1(id,code) as (select 1,'001' union allselect 2,'001,002' union allselect 3,'001,002,003'),table2(code,name) as(select '001','數學' union allselect '002','體育' union allselect '003','美術')

--用charindex和for xml path實現批量替換的功能,適用於sql server 2005及以上版本

select table1.id,stuff((select ','+table2.name from table2where charindex(','+table2.

code+',',','+table1.code+',')>0

order by table2.code

for xml path('')

),1,1,'') as name

from table1結果:

6樓:

一樣的取出來,只是取出來後是個字串,要處理,用explode()函式分隔逗號就行了

7樓:斯內科

--分隔字串

alter function f_splitstr(@sourcesql varchar(8000),@strseprate varchar(100))

returns @temp table(f1 varchar(100))

asbegin

declare @ch as varchar(100)

set @sourcesql=@sourcesql+@strseprate

while(@sourcesql<>'')

begin

set @ch=left(@sourcesql,charindex(',',@sourcesql,1)-1)

insert @temp values(@ch)

set @sourcesql=stuff(@sourcesql,1,charindex(',',@sourcesql,1),'')

endreturn

endgo--模仿下面的函式 (你的需要一個表連線查詢)

create function joinstring --合併字串 多行合併為一行

( @username varchar(50)

) returns varchar(8000)

as begin

declare @str varchar(8000)

set @str = ''

select @str = @str +',' + isnull(bumenname,'') from erpuserguanlidept

where username = @username

if(@str<>'')

set @str=substring(@str,2,len(@str)-1)

return @str

end--使用時

select distinct username,dbo.joinstring(username) as deptlist from erpuserguanlidept

用js寫函式,計算出字串的長度

gbk字符集實際長度計算 function getstrleng str else return reallength utf8字符集實際長度計算 function getstrleng str else return reallength 在js中字串的長度不分中英文字元,每一個字元都算一個長度,...

跪求c語言字串處理函式,跪求 c語言字串 7個處理函式

1.字串連線函式 strcat 原型 char strcat char str1,const char str2 2.字串查詢函式 strchr 原型 char strchr const char str1,const char str2 3.字串比較函式 strcmp 原型 int strcmp ...

從鍵盤上任意輸出字串,統計字串中大小寫英文字母出現的次數。用c語言編寫

include stdio.h include ctype.h int main void printf 大寫字母個數 d n a printf 小寫字母 個數 d n b return 0 從鍵盤輸入一個字串,統計字串大小寫英文字母出現次數。include include using namesp...