SQL Server- function-函数/存储过程中 将带分割符的字符串转换返回成DataTable表格形式
SQL Server- function-函数/存储过程中 将带分割符的字符串转换返回成DataTable表格形式
select * from udf_ebs_obc_V_GridStringSplitToTable(',a,b,c',',')
上面字符串是 ",a,b,c" ,分隔符是 “,” 转换后可以得到一个 table 类型,继续放在其他sql 的 存储过程中当做表格使用即可
Create FUNCTION [dbo].[udf_ebs_obc_V_GridStringSplitToTable]
(
@c VARCHAR(MAX) , --- @c 为固定格式,第一位必须有分隔符比如 ;A;B;C
@split VARCHAR(50)
)
RETURNS @t TABLE ( col NVARCHAR(100) )
AS
BEGIN
if CHARINDEX(@split, @c) <> 0 --首次去掉第一个分隔符,防止插入空符号到表格, 供下面使用
begin
SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')
end
WHILE ( CHARINDEX(@split, @c) <> 0 )
BEGIN
INSERT @t( col )
VALUES ( SUBSTRING(@c, 1, CHARINDEX(@split, @c) - 1) )
SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')
END
INSERT @t( col ) VALUES ( @c ) --把最后一部分内容插入表
RETURN
END
另一边文章正好相反,字符串转换成dataset/table 模式,请参考:
作者: 轻烟随风
当前文章地址: https://www.zyxpp.com/sql-server-stringsplittotable/
来源: 轻烟随风的博客
文章版权归作者所有,欢迎转载
当前文章地址: https://www.zyxpp.com/sql-server-stringsplittotable/
来源: 轻烟随风的博客
文章版权归作者所有,欢迎转载
THE END
二维码
共有 1 条评论