語句中使用情況下,如果在查詢(SQL 2008)使用情況下,如果在查詢
語句我有,每3個實例的服務器。我正在做其中一個查詢在其上運行。部分查詢將過濾每個服務器的ID,即對於server1爲123。
select COUNT(*) from Department Dep
where Dep.LocationID in
(1,2,3, -- Server1
4,5,6, -- Server2
7,8,9 --Server3
)
我可以像上面那樣過濾所有id並獲得結果。由於表格非常大(2 miilon行),因此最好過濾tabel中的內容,即server1的123。雖然它完成所需的時間並沒有太大的區別。
我能做到這一點
if @@SERVERNAME ='Server1'
Begin
select COUNT(*) from Department Dep
where dep.LocationID in
(1,2,3)
End
if @@SERVERNAME ='Server2'
Begin
select COUNT(*) from Department Dep
where dep.LocationID in
(4,5,6)
End
if @@SERVERNAME ='Server3'
Begin
select COUNT(*) from Department Dep
where dep.LocationID in
(7,8,9)
End
所以,如果我在Server2上運行上面的查詢,我將只過濾(4,5,6)
我想加入這個結果到另一個查詢因此尋找更好的方法來做到這一點。
感謝
很難說出你在這裏問什麼。你能澄清嗎? – Codeman 2014-12-02 20:47:17
做三個查詢並將結果插入表變量(或臨時表),然後對錶變量進行最終選擇。 – 2014-12-02 20:51:21
對不起,希望它現在更清晰 – Rosebud 2014-12-02 21:05:57