Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 подсмотрел еше один способ распасить строку  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
declare @RoleIDList varchar(max) = '1,2,3,4,5'
			SELECT role_id
			FROM
			(
				SELECT CAST('<A>'+ REPLACE(@RoleIDList,',','</A><A>')+ '</A>' AS XML) AS xml_string
			) string_as_xml_table
			CROSS APPLY
			(
				SELECT t.value('.', 'int') AS role_id FROM xml_string.nodes('/A') AS x(t)
			) role_id_table
14 окт 14, 21:11    [16704375]     Ответить | Цитировать Сообщить модератору
 Re: подсмотрел еше один способ распасить строку  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3394
Lepsik,

Я пробовал так писать. Проблемы появляются на больших строках - на этапе cast(... as xml) валидация, видимо, дорогая.

Но на такой мелочевке, как в примере - да, вполне.
15 окт 14, 07:18    [16705379]     Ответить | Цитировать Сообщить модератору
 Re: подсмотрел еше один способ распасить строку  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Lepsik
declare @RoleIDList varchar(max) = '1,2,3,4,5'
			SELECT role_id
			FROM
			(
				SELECT CAST('<A>'+ REPLACE(@RoleIDList,',','</A><A>')+ '</A>' AS XML) AS xml_string
			) string_as_xml_table
			CROSS APPLY
			(
				SELECT t.value('.', 'int') AS role_id FROM xml_string.nodes('/A') AS x(t)
			) role_id_table
Создавать себе проблемы, а потом героически их преодолевать - это как-то очень по-нашему...
Какая религия Вам запрещает сразу "набить" XML?
Не говоря уже о том, что использование табличных переменных и параметров по-эффективнее будет...
15 окт 14, 09:19    [16705556]     Ответить | Цитировать Сообщить модератору
 Re: подсмотрел еше один способ распасить строку  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
sphinx_mv
Lepsik

Создавать себе проблемы, а потом героически их преодолевать - это как-то очень по-нашему...
Какая религия Вам запрещает сразу "набить" XML?
Не говоря уже о том, что использование табличных переменных и параметров по-эффективнее будет...


я же написал что подмотрел.
Во-первых переносимое на Оракл, во вторых можно пользовать во View где функции не работают
15 окт 14, 17:33    [16709223]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить