想了解商店程序中的split()

时间:2012-02-16 08:35:06

标签: stored-procedures sageframe

DECLARE @timeRange as varchar(max)
SET @timeRange= '00:30-01:00**00:20-01:00'

DECLARE @tblTime TABLE(RowNum int identity(1,1),TimeRange ntext)

INSERT INTO @tblTime SELECT rtrim(ltrim(items)) from split(@timeRange,'**')
select *from @tblTime

上面的过程返回三行,中间为空

DECLARE @timeRange as varchar(max)
SET @timeRange= '00:30-01:00*00:20-01:00'

DECLARE @tblTime TABLE(RowNum int identity(1,1),TimeRange ntext)

INSERT INTO @tblTime SELECT rtrim(ltrim(items)) from split(@timeRange,'*')
select *from @tblTime

上面的代码正好返回我想要的两行。

我想知道为什么split()函数会影响我的结果。

我首先将字符串与**连接起来然后拆分,结果与连接*的字符串不同。 编辑:拆分功能来自SageFrame

1 个答案:

答案 0 :(得分:0)

忽略我假设的\*\*应为** ...

(我们不知道分割函数是什么样的),分隔符参数是char(1)(或varchar(1))。这意味着**被截断为*,因此您获得3行。