powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / STRING_SPLIT - присвоить алиас правильно
6 сообщений из 6, страница 1 из 1
STRING_SPLIT - присвоить алиас правильно
    #39857816
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть простая конструкция (схематично):

Код: sql
1.
2.
3.
4.
5.
SELECT id
FROM table
CROSS APPLY STRING_SPLIT(@param1, ',')
CROSS APPLY STRING_SPLIT(@param2, ',')
WHERE ...



Само собой, использовать такое невозможно - оба STRING_SPLIT производят одноколоночный rowset, причём поле в обоих имеет имя value, и фиг сошлёшься, ибо нет алиаса таблицы. Та же проблема, если вместо CROSS APPLY использовать любой JOIN.

Вроде чего проще - дай алиас, типа

Код: sql
1.
CROSS APPLY STRING_SPLIT(@param1, ',') AS param1(value)



Ан нет - немедленно получаешь сообщение, что функция STRING_SPLIT не определена.

Понятно, что задача элементарно решается какой-нибудь конструкцией типа

Код: sql
1.
2.
3.
4.
5.
SELECT id
FROM table
CROSS APPLY (SELECT value FROM STRING_SPLIT(@param1, ',')) AS param1(value)
CROSS APPLY (SELECT value FROM STRING_SPLIT(@param2, ',')) AS param2(value)
WHERE ...



или то же в CTE - но как бы "на глаз" явно избыточный подзапрос.

Вопрос: можно ли заалиасить без подзапроса? если да - как именно?
...
Рейтинг: 0 / 0
STRING_SPLIT - присвоить алиас правильно
    #39857823
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
CROSS APPLY STRING_SPLIT(@param1, ',') AS param1
...
Рейтинг: 0 / 0
STRING_SPLIT - присвоить алиас правильно
    #39857827
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда можно указывать алиасы столбцов описано в документации - https://docs.microsoft.com/ru-ru/sql/t-sql/queries/from-transact-sql?view=sql-server-2017
...
Рейтинг: 0 / 0
STRING_SPLIT - присвоить алиас правильно
    #39857829
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

авторSELECT
a.*
,a = x.Value
,b = y.Value
FROM test a
CROSS APPLY STRING_SPLIT(a.Val, ',') as x
CROSS APPLY STRING_SPLIT(a.Val, ',') as y
...
Рейтинг: 0 / 0
STRING_SPLIT - присвоить алиас правильно
    #39857832
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторили то же в CTE - но как бы "на глаз" явно избыточный подзапрос.
ну разворачивает в тоже самое
...
Рейтинг: 0 / 0
STRING_SPLIT - присвоить алиас правильно
    #39857873
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм... доупрощался, называется.

На самом деле основное-то, что хотелось и что я напрасно опустил - это конечное желание переименовать само поле. Т.е. получить не аналог
Код: sql
1.
CROSS APPLY STRING_SPLIT(@param1, ',') AS param1(value)

а аналог
Код: sql
1.
CROSS APPLY STRING_SPLIT(@param1, ',') AS param1(param1)

решаемый конструкцией
Код: sql
1.
CROSS APPLY (SELECT value FROM STRING_SPLIT(@param1, ',')) AS param1(param1)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / STRING_SPLIT - присвоить алиас правильно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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