sql server函数实现把分隔字符串转成表格
来源:互联网 发布:小米笔记本l 知乎 编辑:程序博客网 时间:2024/04/29 14:43
1.
CREATE FUNCTION [dbo].[GetTableFromString] (-- Add the parameters for the function here@sourceStr nvarchar(max) )RETURNS @Table_NameList table ( Name Varchar(max)) -- 建立表变量 ASBEGINDeclare @Index_Param int /*参数 记录分隔符的位置*/Declare @NeedParse varchar(max) /*参数 没有处理的字符串*/if(@sourceStr is NULL OR Ltrim(Rtrim(@sourceStr))='')returnSelect @Index_Param=CharIndex(',', @sourceStr)if (@Index_Param=0)begin /*一个名字组成*/insert into @Table_NameList (Name) values(@sourceStr)endelse /*存在多个名字*/beginset @NeedParse =@sourceStrwhile (CharIndex(',', @NeedParse)>0)begininsert into @Table_NameList (Name) values(SubString(@NeedParse,1,CharIndex(',',@NeedParse)-1))set @NeedParse =SubString(@NeedParse,CharIndex(',', @NeedParse)+1,len(@NeedParse)-CharIndex(',', @NeedParse))endif(len(@NeedParse)>0)insert into @Table_NameList (Name) values(@NeedParse)endreturnEND
CREATE FUNCTION [dbo].[GetTableFromStringBySplit] (-- Add the parameters for the function here@sourceStr nvarchar(max),@splitStr nvarchar(max)=',' )RETURNS @Table_NameList table ( Name Varchar(max)) -- 建立表变量 ASBEGINDeclare @Index_Param int /*参数 记录分隔符的位置*/Declare @NeedParse varchar(max) /*参数 没有处理的字符串*/declare @splitLength intset @splitLength = len(@splitStr)if(@sourceStr is NULL OR Ltrim(Rtrim(@sourceStr))='')returnSelect @Index_Param=CharIndex(@splitStr, @sourceStr)if (@Index_Param=0)begin /*一个名字组成*/insert into @Table_NameList (Name) values(@sourceStr)endelse /*存在多个名字*/beginset @NeedParse =@sourceStrwhile (CharIndex(@splitStr, @NeedParse)>0)begininsert into @Table_NameList (Name) values(SubString(@NeedParse,1,CharIndex(@splitStr,@NeedParse)-1))set @NeedParse =SubString(@NeedParse,CharIndex(@splitStr, @NeedParse)+@splitLength,len(@NeedParse)-CharIndex(@splitStr, @NeedParse))endif(len(@NeedParse)>0)insert into @Table_NameList (Name) values(@NeedParse)endreturnEND
3.
CREATE FUNCTION [dbo].[GetTableFromStringBySplitAndChildSplit] (-- Add the parameters for the function here@sourceStr nvarchar(max),@splitStr nvarchar(max)=',',@valueSplitStr nvarchar(max)=':')RETURNS @Table_NameList table (ID int, Name nVarchar(max)) -- 建立表变量 ASBEGINDeclare @Index_Param int /*参数 记录分隔符的位置*/Declare @NeedParse nvarchar(max) /*参数 没有处理的字符串*/declare @splitLength intdeclare @sourceSplitedStr nvarchar(max)declare @childSplitIndex intset @splitLength = len(@splitStr)if(@sourceStr is NULL OR Ltrim(Rtrim(@sourceStr))='')returnSelect @Index_Param=CharIndex(@splitStr, @sourceStr)if (@Index_Param=0)begin /*一个名字组成*/set @childSplitIndex = CharIndex(@valueSplitStr,@sourceStr)set @sourceSplitedStr = @sourceStr--insert into @Table_NameList (Name) values(@sourceStr)insert into @Table_NameList (ID,Name) values(SubString(@sourceSplitedStr,1,@childSplitIndex-1),SubString(@sourceSplitedStr,@childSplitIndex + 1,len(@sourceSplitedStr)))endelse /*存在多个名字*/beginset @NeedParse =@sourceStrwhile (CharIndex(@splitStr, @NeedParse)>0)beginset @childSplitIndex = CharIndex(@valueSplitStr,@NeedParse)set @sourceSplitedStr = SubString(@NeedParse,1,CharIndex(@splitStr,@NeedParse)-1)--insert into @Table_NameList (Name) values(SubString(@NeedParse,1,CharIndex(@splitStr,@NeedParse)-1))insert into @Table_NameList (ID,Name) values(SubString(@sourceSplitedStr,1,@childSplitIndex-1),SubString(@sourceSplitedStr,@childSplitIndex + 1,len(@sourceSplitedStr)))set @NeedParse =SubString(@NeedParse,CharIndex(@splitStr, @NeedParse)+@splitLength,len(@NeedParse)-CharIndex(@splitStr, @NeedParse))endif(len(@NeedParse) > 0)beginset @childSplitIndex = CharIndex(@valueSplitStr,@NeedParse)set @sourceSplitedStr = @NeedParse--insert into @Table_NameList (Name) values(@NeedParse)insert into @Table_NameList (ID,Name) values(SubString(@sourceSplitedStr,1,@childSplitIndex-1),SubString(@sourceSplitedStr,@childSplitIndex + 1,len(@sourceSplitedStr)))endendreturnEND
select * from dbo.[GetTableFromStringBySplitAndChildSplit]('1,a;2,b;3,c',';',',')
0 0
- sql server函数实现把分隔字符串转成表格
- SQL Server 2005中拆分逗号分隔的字符串或把逗号分隔的字符串拆成数据表的函数
- 有没有把数组直接转成以逗号分隔的字符串的函数
- sql 字符串分隔函数
- sql字符串分隔函数
- sql 把字符串转成数字
- 借助 exec 函数将字符串转成SQL Server命令执行
- sql里分隔字符串函数
- sql server 字符串转成日期格式
- sql server 字符串转成日期格式
- sql server 字符串转成日期格式
- SQL按分隔字符串把字符串分解成列表形式
- SQL Server中自定义函数:用指定的分隔符号分割字符串
- Oracle将以特定分隔的字符串转成表格的方法(用于类似游标的遍历)
- SQL自定义函数split分隔字符串
- 把字符串传成表格 的sql
- oracle wm_concat函数简单实例(实现行转成用分隔符分隔的一列)
- sql把逗号分隔的字符串拆成临时表
- 评估性能时常见错误和解决方法
- 验证电话
- 基于python的模拟鼠标进行百度知道自动签到程序
- 享元模式(FlyWeight)—山上打井
- 文章标题
- sql server函数实现把分隔字符串转成表格
- 验证手机
- 工具的使用——谷歌浏览器(chrome)
- Android驱动开发-- 2.测试驱动程序
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 数据库模式中三大范式
- SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意
- MFC中Edit将一个编辑框内容显示到另一个文本框
- git高级用法