CHARINDEX всегда возвращает 0 при поиске пробелов в столбце TEXT

--get text target starting integers into a table

declare @target TABLE([USERID] varchar(25),[target] int)

--get text stopping point integers into a table

declare @stop TABLE([USERID] varchar(25),[target] int, [stop] int)

--get just the options I want into a table

declare @options TABLE ([USERID] varchar(25), [userDetails] text)
insert into @options ([userid], [userDetails])
select u.userid, rtrim(ltrim(SUBSTRING([userDetails], s.[target], s.[stop] - s.[target])))
from users u join @stop s on u.userid = s.userid

declare @userDetails varchar(max)
Select top 1
@userDetails = [userDetails]
from @options
select charindex(char(32), @userDetails)

Все, что я когда-либо получал, это 0 из этого charindex, я пробовал '' вместо char (32) . Я пробовал изменить текст на varchar, но насколько я понимаю, это бессмысленно, поскольку текст устарел и уже рассматривается как varchar?

Когда я копирую и вставляю фрагмент userDetails в одну строку в кавычках и помещаю это в функцию charindex, все работает так, как ожидалось.

Исходный текст, заполняющий @userDetails, выглядит следующим образом:

ключ = значение ключ = значение ключ = значение

5
задан William Dwyer 21 February 2012 в 20:29
поделиться