0
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() 函数会影响我的结果。

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

4

1 回答 1

0

忽略\*\*我认为应该是**...

猜想(我们不知道 split 函数是什么样子的)分隔符参数是char(1)(或varchar(1))。这意味着它**被截断为*,所以你得到 3 行。

于 2012-02-16T08:45:53.993 回答