我有這個表, 我試圖讓一個查詢,以顯示郵政編碼一次則有列標題是特定的動物。我嘗試使用這種情況下查詢,但它並沒有給我我想要的東西(我做了一個簡短的版本,這樣我就不會打字了這一切,而我是測試)
select
zipcode,
case animal when 'dog' then count when 'lizard' then count else 'null' end as animal
from test1
order by zipcode;
我有這個表, 我試圖讓一個查詢,以顯示郵政編碼一次則有列標題是特定的動物。我嘗試使用這種情況下查詢,但它並沒有給我我想要的東西(我做了一個簡短的版本,這樣我就不會打字了這一切,而我是測試)
select
zipcode,
case animal when 'dog' then count when 'lizard' then count else 'null' end as animal
from test1
order by zipcode;
CASE
是正確的道路要走,但你需要聚集,許多獨立Case
語句。正如你所寫,你有一個單一的案例陳述,這意味着你的結果集中的單個字段。
相反:
select
zipcode,
Sum(CASE WHEN animal= 'dog' THEN count END) as "Dog",
SUM(CASE WHEN animal = 'Lizard' THEN count END) as "Lizard",
etc..
from test1
GROUP BY zipcode
order by zipcode;
你必須爲每個動物Sum(Case...)
,所以他們都有在結果集中自己的領域。此外,GROUP BY
是必要的,以便您爲每個郵政編碼獲得每個動物的sum()
。
爲了幫助他人,也許你應該將問題標題改爲更具描述性的內容,比如'將行轉換爲mysql中的列'或類似的東西。 – Michael