集返回函數這可能是簡單的東西,但不能弄明白。插入到表從參數
我已經表彙總和功能GetSummary
返回行作爲集總結。我可以查詢它像這樣
SELECT GetSummary(arg1, arg2)
GetSummary
-----------
(val1, val2, val3)
而且像這樣的返回實際列:
SELECT * FROM GetSummary(arg1, arg2)
col1 | col2 | col3
------------------------
val1 | val2 | val3
插入到總結工作正常:
INSERT INTO Summary (SELECT * FROM GetSummary(arg1, arg2));
INSERT 0 1
但我無法弄清楚如何根據其他表中的列一次插入多行。我願做這樣的事情:
INSERT INTO Summary (SELECT FROM GetSummary(OtherTable.x, OtherTable.y)
FROM OtherTable WHERE <some query>);
失敗,因爲SELECT FROM GetSummary ..
不返回彙總錶行。查詢SELECT * FROM GetSummary ..
會這樣做,但後來我不知道如何編寫查詢。
編輯
正巧發佈後栽倒解決方案几分鐘。正確的語法是
INSERT INTO Summary (SELECT (GetSummary(OtherTable.x, OtherTable.y)).*
FROM OtherTable WHERE <some query>);
的(X)。*符號擴展選擇列。
從其他表中的其他列?你的意思是你只想從你的函數表中選定的行?如果是這樣,你需要內部加入由函數和其他列表返回的表。 –