閱讀this interesting article關於中間實現 - 我還有一些問題。SQL Server和中間實現?
我有這個疑問:
SELECT *
FROM ...
WHERE isnumeric(MyCol)=1 and (CAST(MyCol AS int)>1)
但是,where子句順序不確定性。
所以我威力 GET例外這裏。(如果他第一次嘗試投"k1k1"
)
我認爲這將解決這個問題
SELECT MyCol
FROM
(SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (MyCol) > 1 ORDER BY MyCol) bar
WHERE
CAST(MyCol AS int) > 100
- 爲什麼把
top 100 + order
將VS改變我定期查詢?
我評價讀:
(「中間」的結果 - 換句話說,在 的方法獲得的結果,將被用於計算最終結果)將是 在TempDB中物理存儲(「物化」)並從那裏用於 用戶的其餘部分,而不是從基表 查詢回來。
- 什麼區別呢使得如果它被存儲在tempdb數據庫或查詢基表回來?這是相同的數據!