2014-09-24 5 views
4

Есть ли альтернатива в HANA sql для оператора «cross apply», как доступно в MsSql? Или существует способ применения функции для значений в таблице? Что-то вродеАльтернатива SAP HANA для перекрестного применения

select T.*, F.* from T cross join someFunction(T.Value) F 
+1

Параметр 'кросс apply' в SQL Server называется' боковой join' в стандартном SQL. Возможно, это то, что использует Хана. –

+0

возможно нет (но песня хорошая) – florin

+0

Можете ли вы объяснить, что вы ожидаете от результата? – AHaberl

ответ

-1

Вы можете использовать кросс-соединение в SAP HANA, это не проблема. Однако, если вы хотите применить функцию для всех записей t.value то запрос должен выглядеть следующим образом:

select T.*, someFunction(T.Value) 
from T cross join F 
+2

Просто сказать, что это не совсем то же самое. В случае «от T cross join someFunction (T.Value) F» функция может изменить количество записей, возвращаемых для каждой записи T. В случае «select T. *, someFunction (T.Value) из T cross join F "количество записей в таблице F будет одинаковым для всех записей T. – 2016-02-16 14:21:05

+0

+1 Урбино для упоминания выше. Другим ограничением этого является то, что у вас есть табличная функция, из которой вы хотите вернуть несколько значений (например, «выберите T. *, F.c1, F.c2 из T cross join someFunction (T.Value) F"): Вам нужно будет повторить вызов функции и написать «select T. *» (выберите c1 из someFunction (T.Value)), (выберите c2 из someFunction (T.Value)) из T "в HANA. – mlkammer

+0

Извините, непонимание на моей стороне того, что именно делает боковое соединение. Однако примечание @mlkhammers о доступе к возвращенным столбцам неверно в SPS 11 (текущая версия SAP HANA). Вы можете просто адресовать столбцы через

. как будто это был обычный стол. –

Смежные вопросы