sqlServer 自定義分割函式以及應用

2021-09-28 21:18:49 字數 1085 閱讀 3038

-- 乙個字段裡面的值是 roleinfo表的id  '1,2,3,4,5' 如何根據 該字段的值查詢到  roleinfo 的名稱

select stuff(  (select ','+rloename from roleinfo where rolesid in (select * from f_splitstring('1,2,3',',')) for xml path('')),1,1,'')

-- 字串轉換為datatable ,以方便查詢用

create function strtotable(@str varchar(1000),@splitstr nvarchar(50)) 

returns @tablename table 

( str2table varchar(50) 

) as 

begin 

if(len(@splitstr) =0)

begin 

set @splitstr = ','

end 

set @str = @str+@splitstr

declare @insertstr varchar(50) --擷取後的第乙個字串 

declare @newstr varchar(1000) --擷取第乙個字串後剩餘的字串 

set @insertstr = left(@str,charindex(@splitstr,@str)-1) 

set @newstr = stuff(@str,1,charindex(@splitstr,@str),'') 

insert @tablename values(@insertstr) 

while(len(@newstr)>0) 

begin 

set @insertstr = left(@newstr,charindex(@splitstr,@newstr)-1) 

insert @tablename values(@insertstr) 

set @newstr = stuff(@newstr,1,charindex(@splitstr,@newstr),'') 

end 

return 

end

SQL Server 自定義字串分割函式

原文 sql server 自定義字串分割函式 一 按指定符號分割字串,返回分割後的元素個數,方法很簡單,就是看字串中存在多少個分隔符號,然後再加一,就是要求的結果 標量值函式 1 create function func strarraylength 2 3 str varchar 1024 要分...

C 中建立SQLServer的自定義聚合函式

1.建立 使用vs2005的 聚合函式 模板建立,實現以下幾個方法 init 給每個要聚合的新組初始化 accumulate 將每個值聚合 merge 將乙個聚合組的結果新增到當前組中 terminate 返回結果 2.部署 通過vs2005部署自動在sqlserver中建立聚合函式 3.使用 在s...

自定義實現strcmp,atoi,itoa函式

1.mystrcmp函式,字串比較 abc x abc abc ab aa 第乙個大於第二個則返回正數,相等返回0,第乙個小於第二個返回負數。include include intmystrcmp const char str1,const char str2 int tmp 0 while tmp...