Member 7767311 Ответов: 3

функция для разделения конкатенированной строки


У меня есть таблица ключевых слов, где в столбце keywords у меня есть
Бизнес-решения + бизнес-решения в Бангалоре + бизнес-решения в Майсуре

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

gvprabu

Привет,

Проверьте почту... (мой ответ)
http://www.codeproject.com/Answers/567667/Splitplusfunctionpluserrorplus-plusTheplusstatemen#answer1

3 Ответов

Рейтинг:
2

_Maxxx_

Попробуй эта статья[^]


Рейтинг:
12

Shanalal Kasim

Привет,

Создайте нижеприведенную функцию

CREATE FUNCTION [dbo].[String_Tokenizer]
(
	@RowData nvarchar(max),
	@SplitOn nvarchar(5)
)  
RETURNS @RtnValue table 
(
	Data nvarchar(100)
) 
AS  
BEGIN 
	Declare @Cnt int
	Set @Cnt = 1
 
	While (Charindex(@SplitOn,@RowData)>0)
	Begin
		Insert Into @RtnValue (data)
		Select 
			Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))
 
		Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))
		Set @Cnt = @Cnt + 1
	End
	
	Insert Into @RtnValue (data)
	Select Data = ltrim(rtrim(@RowData))
 
	Return
END



Приведенная выше функция вернет временную таблицу.

Пример кода:

select * from [dbo].[String_Tokenizer]('Business Solutions + Business Solutions in Bangalore + Business Solutions in Mysore','+')


Выход:
Data

Business Solutions
Business Solutions in Bangalore
Business Solutions in Mysore


Member 7767311

k я принимаю решение .. но как вызвать эту функцию в хранимой процедуре

С уважением
Матчи sarthak

Shanalal Kasim

пожалуйста, отметьте это как ответ.
В sp вы можете использовать как
выберите * из [dbo].[String_Tokenizer] (параметр)
Или
объявите переменную таблицы, например Declare @Tmp table ( Data nvarchar(100) )
затем
вставить в @Tmp select * from [dbo].[String_Tokenizer] (параметр)

Другие мудрые пожалуйста объясните свой сценарий

Рейтинг:
0

Zoltán Zörgő

Если у вас есть знания и возможность сделать это, я предлагаю вам создать библиотеку .net с пользовательскими функциями CLR, которые вам могут понадобиться (см.: http://msdn.microsoft.com/en-us/library/w2kae45k(v=против 80). aspx[^В .net у вас гораздо больше возможностей для решения таких простых задач.
Вот пример, как вызывать с табличным значением пользователем функции CLR: http://msdn.microsoft.com/en-us/library/ms131103.aspx[^]