1
我有三個查詢,看起來像這些:執行查詢,直到非空的結果
SELECT * FROM Table1 WHERE Column1 = 'a'
SELECT * FROM Table2 WHERE Column2 = 'b'
SELECT * FROM Table1 A, Table2 B WHERE A.Column1 <> B.Column1
現在所有的邏輯是在客戶端實現如下。執行第一個查詢,如果HasRows將標誌設置爲1並返回行。否則,執行第二個查詢,如果HasRows將該標誌設置爲2並返回行。否則,執行第三個查詢,將標誌設置爲3並返回行。
如何用單個查詢做到這一點?我想,旗子的東西,應該解決添加標誌的查詢:
SELECT Flag = 1, * FROM Table1 WHERE Column1 = 'a'
SELECT Flag = 2, * FROM Table2 WHERE Column2 = 'b'
SELECT Flag = 3, * FROM Table1 A, Table2 B WHERE A.Column1 <> B.Column1
但現在什麼?如何查詢,如果查詢返回非空結果?
此外,我想緩存結果,換句話說,爲了避免執行相同的查詢兩次 - 一次用於檢查,第二次用於返回數據。
問候,