我正在使用这个逻辑来拆分字符串查询
declare @query nvarchar(max)
set @query = '1&2&3&4&5&6&7&8&9&10&11&12&13&14'
SELECT SUBSTRING('&' + @query + '&', Number + 1, -- is used to split the '@query' on the basis of '&' sign
CHARINDEX('&', '&' + @query + '&', Number + 1) - Number -1)AS VALUE
FROM master..spt_values
WHERE Type = 'P'
AND Number <= LEN('&' + @query + '&') - 1
AND SUBSTRING('&' + @query + '&', Number, 1) = '&'
当查询很小时它工作得很好,但是当@query 的值非常大时,它给我的结果比实际的要少
例如。
@query = 'very large string containing 60 & sign '
仅返回 10 条记录
如何拆分大字符串,原因是什么?为什么SUBSTRING
不能处理大字符串?