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

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


Добрый день, подскажите пожалуйста, как мне обращаться к полям таблицы value, которая создается после выполнение данного запроса? например в переменную записать данные из второй строки.
...
Рейтинг: 0 / 0
26.10.2019, 01:30
    #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
26.10.2019, 02:33
    #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
26.10.2019, 02:39
    #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
26.10.2019, 17:48
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / парсинг строк / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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