powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / парсинг строк
5 сообщений из 5, страница 1 из 1
парсинг строк
    #39881819
sqlfool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DECLARE @tags NVARCHAR(400) = 'clothing,road,,touring,bike'

SELECT value
FROM STRING_SPLIT(@tags, ',')
WHERE RTRIM(value) <> '';


Добрый день, подскажите пожалуйста, как мне обращаться к полям таблицы value, которая создается после выполнение данного запроса? например в переменную записать данные из второй строки.
...
Рейтинг: 0 / 0
парсинг строк
    #39881821
3unknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
DECLARE @tags NVARCHAR(400) = 'clothing,road,,touring,bike'

;with t as(
SELECT value
,row_number() over(order by 1/0) n
FROM STRING_SPLIT(@tags, ',')
WHERE RTRIM(value) <> ''
)
select value from t where n=2 
...
Рейтинг: 0 / 0
парсинг строк
    #39881824
sqlfool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
3unknown,

да, но остается вопрос как в переменную записать данные, когда я делаю так:


DECLARE @tags NVARCHAR(400) = @string;

with t as(
SELECT value
,row_number() over(order by 1/0) n
FROM STRING_SPLIT(@tags, '')
WHERE RTRIM(value) <> ''
)

declare @data varchar(50);
set @data = (select value from t where n =2)

выдает ошибку.
...
Рейтинг: 0 / 0
парсинг строк
    #39881825
3unknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE @tags NVARCHAR(400) = 'clothing,road,,touring,bike'
declare @data varchar(50);

;with t as(
SELECT value
,row_number() over(order by 1/0) n
FROM STRING_SPLIT(@tags, ',')
WHERE RTRIM(value) <> ''
)
select @data = value from t where n=2 

print @data
...
Рейтинг: 0 / 0
парсинг строк
    #39881915
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlfoolкогда я делаю так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
with t as(
SELECT value
,row_number() over(order by 1/0) n
FROM STRING_SPLIT(@tags, '')
WHERE RTRIM(value) <> ''
)
declare @data varchar(50);
set @data = (select value from t where n =2)



with (то есть CTE) - это не определение какого то имени, это часть запроса.

Написать declare между with и set - это то же самое, что написать declare между FROM и WHERE
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / парсинг строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]