sqlserver中利用Tran_sql把逗号分隔的字符串拆成临时表
2017-01-10 17:30
393 查看
在与数据库交互的过程中,我们经常需要把一串ID组成的字符串当作参数传给存储过程获取数据。很多时候我们希望把这个字符串转成集合以方便用于in操作。 有两种方式可以方便地把这个以某种符号分隔的ID字符串转成临时表。
方式一:通过charindex和substring。
代码
/************************************************************
* Code formatted by SoftTree SQL Assistant ?v6.5.278
* Time: 2015/8/4 11:22:40
************************************************************/
CREATE FUNCTION func_splitstring
(
@str NVARCHAR(MAX),
@split VARCHAR(10)
)
RETURNS @t TABLE(c1 VARCHAR(100))
AS
BEGIN
DECLARE @i INT
DECLARE @s INT
SET @i = 1
SET @s = 1
WHILE (@i > 0)
BEGIN
SET @i = CHARINDEX(@split, @str, @s)
IF (@i > 0)
BEGIN
INSERT @t
(
c1
)
VALUES
(
SUBSTRING(@str, @s, @i -@s)
)
END
ELSE
BEGIN
INSERT @t
(
c1
)
VALUES
(
SUBSTRING(@str, @s, LEN(@str) -@s + 1)
)
END
SET @s = @i + 1
END
RETURN
END
执行:select * from dbo.func_splitstring('1,2,3,4,5,6', ',')
方式一:通过charindex和substring。
代码
/************************************************************
* Code formatted by SoftTree SQL Assistant ?v6.5.278
* Time: 2015/8/4 11:22:40
************************************************************/
CREATE FUNCTION func_splitstring
(
@str NVARCHAR(MAX),
@split VARCHAR(10)
)
RETURNS @t TABLE(c1 VARCHAR(100))
AS
BEGIN
DECLARE @i INT
DECLARE @s INT
SET @i = 1
SET @s = 1
WHILE (@i > 0)
BEGIN
SET @i = CHARINDEX(@split, @str, @s)
IF (@i > 0)
BEGIN
INSERT @t
(
c1
)
VALUES
(
SUBSTRING(@str, @s, @i -@s)
)
END
ELSE
BEGIN
INSERT @t
(
c1
)
VALUES
(
SUBSTRING(@str, @s, LEN(@str) -@s + 1)
)
END
SET @s = @i + 1
END
RETURN
END
执行:select * from dbo.func_splitstring('1,2,3,4,5,6', ',')
相关文章推荐
- sql把逗号分隔的字符串拆成临时表
- sql把逗号分隔的字符串拆成临时表(转:http://www.cnblogs.com/eleven11/archive/2010/08/17/1800901.html)
- sql把逗号分隔的字符串拆成临时表
- sql把逗号分隔的字符串拆成临时表
- sql把逗号分隔的字符串拆成临时表
- sql,scope_identity,procedure,tran,substring,cast,convert,charindex,插入角色的同时插入角色拥有的权限,权限使用权限列表表示,列表用逗号分隔权限的id,更新角色信息,同时更新权限信息
- Sql将逗号分隔的字符串分拆成表格的方法
- SQL返回逗号分隔字符串或者其它符号
- 在SQL中参数值超过8000(TEXT类型)的处理方法,以"逗号"分隔的字符串
- MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法
- SQL Server逗号分隔字符串拆成临时表
- Sqlserver列的内容连接为字符串用逗号分隔
- SQL中以逗号分隔的字符串的判断
- sql把逗号分隔的字符串拆成临时表的自定义函数
- sql将逗号分隔的字符串转为表Table
- 利用select for xml 生成以逗号分隔的字符串
- sql将列转换为以逗号分隔的字符串
- SQL Server逗号分隔字符串通过户自定义函数返回临时表
- SQL字符串逗号分隔函数
- sql字符串已逗号分隔