sql server字符串分割函数split实现代码
本文导语: 1,当需要传入很长的字符串时,可以借助NText和Text类型。 区别:一个是支持Unicode,一个是支持ANSI字符集的。 注意,当要计算字符串长度时,需要用到DATALENGTH()而不是LEN(),在NText类型中一个字符占两个字节,所以在计算字符...
1,当需要传入很长的字符串时,可以借助NText和Text类型。
区别:一个是支持Unicode,一个是支持ANSI字符集的。
注意,当要计算字符串长度时,需要用到DATALENGTH()而不是LEN(),在NText类型中一个字符占两个字节,所以在计算字符时别忘了除以2。
代码:
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE FUNCTION [dbo].[Split]
(
@SplitString text, -- 如果要传入NText类型,下面需要相应的修改,注释行为NText下同
@Separator varchar(2) = ','-- NVarChar(2) = N','
)
RETURNS @SplitStringsTable TABLE
(
[id] int identity(1,1),
[value] varchar(8000) -- NVarChar(4000)
)
AS
BEGIN
DECLARE @CurrentIndex int;
DECLARE @NextIndex int;
DECLARE @ReturnText varchar(8000);-- NVarChar(4000)
SELECT @CurrentIndex=1;
WHILE(@CurrentIndex