2014-09-24 65 views
4

在MsSql中提供的「交叉應用」運算符在HANA sql中是否存在替代方案? 或者有沒有辦法將一個函數應用於表中的值?類似於用於交叉應用的SAP HANA替代方案

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

SQL Server中的'橫apply'被稱爲標準的SQL'橫向join'。也許這就是哈娜使用的。 – 2014-09-24 17:42:29

+0

也許不是(但歌曲很好) – florin 2014-09-25 09:01:27

+0

你能解釋一下你期望的結果集是什麼樣的嗎? – AHaberl 2014-09-26 14:04:31

回答

-1

您可以在SAP HANA中使用交叉連接,這不是問題。 但是,如果你想給一個函數應用到T.VALUE的所有條目,然後查詢需要看起來像這樣:

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

只是說這不完全一樣。在「從T交叉連接某個函數(T.Value)F」的情況下,該函數可以改變爲每個T記錄返回的記錄數。在「從T交叉選擇T. *,someFunction(T.Value)加入F「表F中的記錄數將與T的所有記錄相同。 – 2016-02-16 14:21:05

+0

+1對於烏爾比諾提到上述內容。另一個限制是當你有一個表值函數你想要返回多個值時(例如「從T交叉連接someFunction(T.Value)F」中選擇T. *,F.c1,F.c2):您必須重複函數調用,並在HANA中從T「中選擇T. *,(從someFunction(T.Value))選擇c1,(從someFunction(T.Value)選擇c2)。 – mlkammer 2016-02-29 16:23:15

+0

對不起,我的側面誤解了橫向連接的確切作用。 但是,@mlkhammers在SPS 11(當前SAP HANA版本)中關於訪問返回列的說法不正確。您可以通過

簡單地列出這些列。 就好像它是一張普通的桌子一樣。 – 2016-03-03 02:15:56