我寫了一個相當複雜的t-sql查詢(按我的標準,因爲我不是DBA)更復雜的子查詢,我抽象爲一個標量函數來計算和檢索單個值。這一切都運行良好,直到我意識到我需要來自子查詢/函數中的第二列的數據,現在我被卡住了。很明顯,我可以將函數轉換爲一個proc來返回多個值(或者直接在主查詢中聲明子查詢),但是如何將它們整齊地放入父查詢中作爲單獨的列?t-sql在子查詢中使用具有子查詢/ proc調用的2個或多個列的select查詢
我知道我可以做一些笨重的事情,如concatenate(逗號分隔)結果或使用FOR XML(我的查詢包含另一個子查詢,從另一個表中返回* .. 1數據),但我我正在使用實體框架,並希望保持這兩個強類型的特定值。我的谷歌搜索一直使用EXISTS,但是我沒有看到任何實例從select查詢中實際檢索列的示例,即它僅用於將邏輯應用於使用多列的where子句。
這只是不能做的事情嗎?我最後的手段是嘗試將子查詢合併爲更多連接,但我試圖保持我的查詢可讀,並將它們組合起來將這個想法拋出窗口。
在此先感謝 - 「不,這不能做」也是回答我準備接受:-)
這是一個使用這我想換到一個標量函數「小說」的例子存儲過程返回2列:
SELECT t1.Field1,
t2.Field2,
,dbo.fn_Select_ComplexStuff(t1.Field3) AS ComplexStuff
FROM MyTable1 AS t1
INNER JOIN MyTable2 AS t2 ON t1.id = t2.id
WHERE t1.Field4 = 'Albatross'
很容易當你知道如何!非常感謝您的回覆,它的工作原理是:-) – Rob 2011-04-28 07:46:20