SQL 字符串分割表函数

 1 --字符串分割表函数
 2 declare @str varchar(1000)
 3 declare @split varchar(10)
 4
 5 declare @i int;
 6 declare @count int;
 7
 8 declare @ChildStr varchar(1000);
 9 declare @splitStr varchar(1000);
10 declare @Index int;
11
12 declare @table as table (rowId int,splitStr varchar(1000))
13 declare @rowID int;
14
15 set @str=‘aaa;bbb;ccc;d;‘;
16 set @split=‘;‘;
17 set @i=1;
18 set @count=LEN(@str);
19 set @ChildStr=@str;
20 set @rowID=1;
21
22 while @i<=@count
23 begin
24     set @Index= charindex(@split,@ChildStr);
25
26     if @Index >0
27     begin
28         set @splitStr=SUBSTRING(@ChildStr,0,@Index);
29
30         insert @table
31         select @rowID,@splitStr
32
33         set @ChildStr=SUBSTRING(@ChildStr,@Index+1,LEN(@ChildStr));
34
35         set @rowID=@rowID+1;
36         set @i=@i+1;
37     end
38     else if LEN(@ChildStr)>0
39     begin
40         insert @table
41         select @rowID,@ChildStr
42
43         --select * from @table
44         return;
45     end
46     else
47     begin
48         --select * from @table
49         return;
50     end
51
52 end
时间: 2024-10-07 06:03:54

SQL 字符串分割表函数的相关文章

sql字符串分割

字符串:declare @str varchar(1000)='0208588A_0208588,0098256A_0208588,0224208A_0224208,' 分割结果: 示例sql: declare @str varchar(1000)='0208588A_0208588,0098256A_0208588,0224208A_0224208,' --declare @str varchar(1000)='0080203A_0080203,0080215A_0080203,' decla

strtok():“字符串分割”实用函数

最近一直纠结于一个十分简单的问题:如何将一个字符串按标志分割开来?提出这个问题的初衷是自己在处理一个将命令行字符串转换为argc,argv格式的问题. 尝试了很多种方法,最后觉得利用strtok()函数来实现是一个比较好的方法.首先进行strtok()函数的介绍. char *strtok(string, control);  --- Tokenize string with delimiter in control. --- 通过分割符控制将字符串切片化. Purpose: strtok co

SQL字符串分割解析

--方法一:动态SQL法 declare @s varchar(50),@sql varchar(300) set @s='1,2,3,4,5,6,7,8,9,10' set @sql='select col='''+ replace(@s,',',''' union all select ''')+'''' print @sql exec (@sql) if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f

sql字符串累加stuff()函数

函数 stuff(param1, startIndex, length, param2) 函数说明将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符.例子 我有个#tmp1 的表,内容为 执行下面语句 SELECT PRODID,KTL_CustRef, PO = stuff ((SELECT ' ' + PO FROM #tmp1 AS t WHERE t .PRODID = tb.PRODID FOR xml p

VC实现字符串分割的函数strtok

Python网络爬虫-正则表达式 分享第二套C语言源代码合集 vc++6.0如何捕获关机事件并执行我自己的代码 浅谈面向对象--<ThinkinginJava>读书笔记(一) zv5拙侔号http://p.baidu.com/pai/center?uid=e97061626332393034363011aa&type=qq35kx踊泻蓖7tsuhd副战追http://p.baidu.com/pai/center?uid=78e261626333363962616211aa&ty

SQL 字符串相关

一.sql中,字符串保存序号,按照数字顺序进行排序 ----/*省略部分代码*/--- order by RIGHT(REPLICATE('0',10)+CAST(householdNo AS varchar(10)),10) asc --householdNo 为要排序字段 二.SQL Server 时间字符串转换为DateTime格式 SELECT GETDATE() -------获取当前时间 SELECT CONVERT(DATETIME,'2018-06-26 09:54:30.027

PCB MS SQL表值函数与CLR 表值函数 (例:字符串分割转表)

将字符串分割为表表经常用到,这里 SQL表值函数与CLR  表值函数,两种实现方法例出来如下: SELECT * FROM FP_EMSDB_PUB.dbo.SqlSplit('/','1oz/1.5oz/2oz/3oz') 效果如下: SQL实现表值函数 CREATE FUNCTION [dbo].[splitStr]( @s varchar(max), --待分拆的字符串 @split varchar(10) --数据分隔符 )RETURNS @re TABLE(id int IDENTIT

mssql字符串分割后的值,把表中不存在的插入表中

字符串分割后的值,把表中不存在的插入表中 --供大家参考 使用场景,自行思考…… --创建表tb1 Create table tb1 ( cola int, colb varchar(50) ) --插入数据 insert into tb1(cola,colb) select 1, 'A' union all select 2, 'B' union all select 3, 'C'; --存储过程 Create proc sp_tbTest @sid int,--ID @str varchar

SQL SERVER系统表和常用函数介绍

sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoledbusers 主数据库 链接服务器登陆信息sysprocesses 主数据库 进程 sysremotelogins主数据库 远程登录帐号syscolumn