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
答案 0 :(得分:0)
忽略我假设的\*\*
应为**
...
我猜(我们不知道分割函数是什么样的),分隔符参数是char(1)
(或varchar(1)
)。这意味着**
被截断为*
,因此您获得3行。