在MsSql中提供的「交叉應用」運算符在HANA sql中是否存在替代方案? 或者有沒有辦法將一個函數應用於表中的值?類似於用於交叉應用的SAP HANA替代方案
select T.*, F.* from T cross join someFunction(T.Value) F
在MsSql中提供的「交叉應用」運算符在HANA sql中是否存在替代方案? 或者有沒有辦法將一個函數應用於表中的值?類似於用於交叉應用的SAP HANA替代方案
select T.*, F.* from T cross join someFunction(T.Value) F
您可以在SAP HANA中使用交叉連接,這不是問題。 但是,如果你想給一個函數應用到T.VALUE的所有條目,然後查詢需要看起來像這樣:
select T.*, someFunction(T.Value)
from T cross join F
只是說這不完全一樣。在「從T交叉連接某個函數(T.Value)F」的情況下,該函數可以改變爲每個T記錄返回的記錄數。在「從T交叉選擇T. *,someFunction(T.Value)加入F「表F中的記錄數將與T的所有記錄相同。 – 2016-02-16 14:21:05
+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
對不起,我的側面誤解了橫向連接的確切作用。 但是,@mlkhammers在SPS 11(當前SAP HANA版本)中關於訪問返回列的說法不正確。您可以通過
SQL Server中的'橫apply'被稱爲標準的SQL'橫向join'。也許這就是哈娜使用的。 – 2014-09-24 17:42:29
也許不是(但歌曲很好) – florin 2014-09-25 09:01:27
你能解釋一下你期望的結果集是什麼樣的嗎? – AHaberl 2014-09-26 14:04:31