sql SQL - 字串分割回传资料表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql SQL - 字串分割回传资料表相关的知识,希望对你有一定的参考价值。

DROP FUNCTION [dbo].[fn_slip_str]
GO

SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE Function [dbo].[fn_slip_str]( @InStr nvarchar(max) , @s_char nvarchar(1) )
Returns @tb Table ( sno int , data nvarchar(max) )
As
Begin
	/*依據傳入字元進行字串分割,回傳Table*/
	/*
	Declare @InStr nvarchar(2000) , @s_char nvarchar(1);
	Set @InStr = '字串一,字串2,字串3,字串4';
	Set @s_char = ',';*/
	
	Set @InStr = @s_char + @InStr + @s_char;

	Declare @p1 Int , @p2 Int , @data nvarchar(max) , @sno int;
	Set @p1 = -1 ; Set @p2 = -1 ; Set @data = '' ; Set @sno = 0;
	While ( 0 Not In (@P1,@P2) ) Begin
		Set @p1 = CharIndex(@s_char,@InStr,@p1+1);
		Set @p2 = CharIndex(@s_char,@InStr,@p1+1);
		If ( 0 In (@p1,@p2) ) 
			Break;
		Set @data = SubString(@InStr,@p1+1,@p2-@p1-1);
		if ( @data <> '' ) Begin
			Set @sno = @sno +1;
			Insert Into @tb ( sno , data ) Values ( @sno , @data )
		End
	End
	Return
End
GO

以上是关于sql SQL - 字串分割回传资料表的主要内容,如果未能解决你的问题,请参考以下文章

mysql中的concat用法!

SQL中字符串的连接

linux之SQL语句简明教程---TRIM

SQL 查表名?

SQL 字符串分割表函数

SQL server字符串分割成表-表分割为字符串