Я искал ответ повсюду, и я не могу найти ничего, что указывало бы мне в правильном направлении.
Мне нужно создать UDF, который будет извлекать каждое слово текстовой строки и возвращать таблицу с каждым словом строки в отдельной строке.
UDF может принимать только одну переменную '@mytext'.
Можно предположить, что текстовая строка разделена одним пробелом и может содержать запятые или точки.
Например, «не беспокойтесь о неудачах, беспокойтесь о шансах, которые вы упустите, даже не попытавшись». потребуется вернуть таблицу с каждым словом в отдельной строке столбца без запятых или точек.
Я полагаю, что текстовую строку нужно будет разделить общим значением, которое можно использовать для разделения каждого слова для вставки, но я могу ошибаться.
Любая помощь в этом будет очень признательна!
Основываясь на том, что я сказал до сих пор, вот мой далеко не полный код, с которым я не слишком уверен, как действовать
create function [dbo].[textConverter]
(
@mytext nvarchar(max)
)
returns @text_string table
(
word nvarchar
)
as
begin
set @mytext = replace(@mytext, 'what needs to be changed', 'what it needs to be changed too')
--insert string to table
end
ИЗМЕНИТЬ
Я проверил пару ссылок и обнаружил немного больше информации об этом, теперь у меня есть этот код. Однако он выходит с ошибкой. Пример, который был использован в статье, я нашел код на использованных номерах во вставке, так что, может быть, проблема в этом??
create function [dbo].[textConverter]
(
@mytext varchar(max)
)
returns @text_string table
(
word nvarchar
)
as
begin
--Change string to be seperated by commas
set @mytext = replace(@mytext, ' ', ',')
set @mytext = replace(@mytext, '.',',')
--Eliminate double commas
set @mytext = replace(@mytext, ',,', ',')
declare @name nvarchar(255)
declare @pos int
while CHARINDEX(',', @mytext) > 0
begin
select @pos = CHARINDEX(',', @mytext)
select @name = SUBSTRING(@mytext, 1, @pos-1)
insert into @text_string
select @name
select @mytext = SUBSTRING(@mytext, @pos+1, LEN(@mytext)-@pos)
end
insert into @text_string
select @mytext
return
end
--To use function
select * from dbo.textConverter('don’t worry about failures, worry about the chances you miss when you don’t even try.')