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,'

declare @sSplitChar varchar(1)=','
declare @tblExternal_id table(external_id varchar(100))

declare  @tmp   as   varchar(100)
set   @str=rtrim(ltrim(@str)) + @sSplitChar
set   @str=replace(@str,@[email protected], @sSplitChar) -- make sure @str ends with a @sSplitChar 

while(@str<>'')
begin
	set   @tmp=left(@str,charindex(@sSplitChar,@str,1)-1)
	insert   @tblExternal_id   values(@tmp)
	set   @str=stuff(@str,1,charindex(@sSplitChar,@str,1),'')
end   

 --select * from @tblExternal_id
 select external_id, row_number() over(order by external_id) as RownNum from @tblExternal_id

参考来源:

http://www.360doc.com/content/12/0213/14/19692_186289261.shtml

sql字符串分割,布布扣,bubuko.com

时间: 2024-10-08 00:03:34

sql字符串分割的相关文章

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,s

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

mysql 字符串分割 和 动态执行拼接sql

本人以前主要用的是MSSQL,最近项目在使用MYSQL,自己是一个 典型的小白.今天就记录一下 一个mysql存储过程,里面需要分割字符串和 动态执行sql语句. 关于字符串 分割我开始使用 LOCATE 和Position来做,不知道在proc 里面有时候报错,单独的查询有可以.后来在网上 找了一个 Mysql存储过程中字符串分割文章, 很多地方都推荐使用  SET @result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(plate_

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

C#为工作Sql而产生的字符串分割小工具(很实用,你值得拥有)

写在前面 为什么要写这个工具? 工作需要,拼接字符串头晕眼花拼接的,特别是in 查询,后面的参数太多,想在数据执行一些这个sql语句老费劲了. 看正文 工作所有的(后台)攻城狮们都会接触到sql语句,最常见的sql语句有很多,特别 in 查询,举个最简单的例子就是 SELECT * FROM SMSSENTLOG201505 WHERE ACCOUNTCODE IN ('PDA','ORDER','APP','WEB','ZHONGTIAN','00006','02100','CALLCENTE

(六)PL/SQL字符串

PL/SQL字符串实际上是一个可选的尺寸规格字符序列.字符可以是数字,字母,空白,特殊字符或全部的组合. PL/SQL提供了三种类型的字符串:  固定长度字符串:在这样的字符串,程序员指定的长度,同时声明该字符串.该字符串是右填充空格以达到指定的长度.  变长字符串:在这样的字符串,最大长度可达32,767,为字符串指定,并不需要填充.  字符大对象(CLOB) :这是可变长度的字符串,可以达到128兆兆字节. PL/ SQL字符串可以是变量或字面值.字符串文字被引号围在内部.例如:'This

C++ 字符串分割

2017-06-26 21:47:06 这几天在做大数据的处理,需要处理几百万的数据.由于一直用的是c++,所以就直接用c++进行了编码. 不过后来经过学长的提醒发现其实字符串处理,尤其是处理csv文件(由逗号作为分割符)时,需要将各个部分分割开来,如果用Java或者Python进行处理的话会非常方便,比如Java就有split函数进行字符串的分割,不过我在查询资料之后发现c++中并没有现成的针对string的字符串分割函数.于是我自己写了一个split函数. 这个函数的声明是 void spl

【2017-04-20】Sql字符串注入式攻击与防御

字符串攻击 所谓sql字符串注入式攻击就是在用户输入界面输入通过精心编制的含有某种指令的字符串,来改变C#中连接数据库要执行的sql语句,从而对数据库进行攻击性操作 在用户输入界面输入  a');update Student set Sname ='伊伊';-- 则数据库Sname一列都讲变为  伊伊 原理:用户输入的代码将c#中的sql语句中的sname替换掉了,就变成了下边的黑客想执行的sql语句. insert into Student values('"+sno+"','a')

C/C++ 字符串分割: strtok 与 strsep 函数说明

函数原型: char *strtok(char *s, const char *delim); char *strsep(char **s, const char *delim); 功能:strtok和strsep两个函数的功能都是用来分解字符串为一组字符串.s为要分解的字符串,delim为分隔符字符串. 返回值:从s开头开始的一个个子串,当没有分割的子串时返回NULL. 相同点:两者都会改变源字符串,想要避免,可以使用strdupa(由allocate函数实现)或strdup(由malloc函