2011-12-21 22 views
1

我有兩個疑問:獲取多個變量以顯示在SQL Server中?

Select count(*) as countOne where field = '1' 
Select count(*) as countTwo where field = '2' 

我想在我的結果瀏覽器執行這些查詢後看到:

countOne | countTwo 
     23 |  123 

我怎麼能只運行一個查詢得到兩個查詢的結果?

+0

這些都是針對同一張表進行選擇嗎? – 2011-12-21 14:05:31

+0

@MartinSmith,是 – sooprise 2011-12-21 14:05:51

回答

4
SELECT COUNT(CASE WHEN field = '1' THEN 1 END) AS countOne, 
     COUNT(CASE WHEN field = '2' THEN 1 END) AS countTwo 
FROM YourTable 
WHERE field IN ('1', '2') 
+0

+1,以便在單個查詢中重用它,而不是suub查詢。 – Pankaj 2011-12-21 17:11:35

0

最簡單的方法是運行每個作爲子選擇例如。

SELECT 
(
Select count(*) where field = '1' as countOne, 
Select count(*) where field = '2' as countTwo 
) 

但這不是necesarily的最佳方式

另一個京順路做到這一點。將組由字段,然後做PIVOT選擇出每一組作爲一個單獨的列。

+0

這就是所謂的子查詢?它只是非常低效?如果是的話,什麼是更好的方法? – sooprise 2011-12-21 14:06:16

+0

這將是數據密集的兩個單獨選擇。我在答案中指定了另一種選擇PIVOT,但必須查找語法(我不經常這樣做) – 2011-12-21 14:08:08