台灣最大程式設計社群網站
線上人數
978
 
會員總數:245475
討論主題:189234
歡迎您免費加入會員
討論區列表 >> Oracle >> Select Case 是某可做到此功能
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Select Case 是某可做到此功能
價值 : 60 QP  點閱數:2003 回應數:7

樓主

自然風
初學者
834 22
652 152
發送站內信

請問Select case 語法是否可以做到以下將Table轉為第二種方式,

想了很久都不知道該如何做到,還是說有什麼別的語法可以做到。



本篇文章發表於2013-07-20 10:53
== 簽名檔 ==
程式中迷途的小書僮。
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

神來之筆
捐贈 VP 給 神來之筆 檢舉此回應



本篇文章回覆於2013-07-20 23:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

花旗蔘
檢舉此回應

本篇文章回覆於2013-07-22 10:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

fantasy
捐贈 VP 給 fantasy 檢舉此回應
select 類別,count(姓名) 總筆數,
--count(case when 閱讀狀態='Y' then 1 else null end) 已閱讀完筆數 , <--這個錯了,應該是用Sum
sum(case when 閱讀狀態='Y' then 1 else null end) 已閱讀完筆數 ,
--count(case when 我的最愛='Y' then 1 else null end) 喜愛筆數 <--這個錯了,應該是用Sum
sum(case when 我的最愛='Y' then 1 else null end) 喜愛筆數
from <tablename>
group by 類別


不過看題目,您也有在Ptt的 Database發問吧,我有在那邊已經回覆您了...
本篇文章回覆於2013-07-22 12:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

花旗蔘
檢舉此回應
to #3
在這裡用count 或sum 是沒差異的,只是要算出其筆數而已,
請不用執著於 1 那個數字,今天我要用字串來表示 也是一樣的結果,
彙總函數 預設是會略過null 的。
本篇文章回覆於2013-07-22 13:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

自然風
檢舉此回應
感謝花旗蔘、神來之筆、fantasy,花旗蔘的用法簡單易了,太久沒寫SQL真的熊熊忘了

可以用SUM函數,包完Select case後就在想要怎麼加總。 Any way Thx guys.
本篇文章回覆於2013-07-29 12:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

fantasy
捐贈 VP 給 fantasy 檢舉此回應
to 版主,Sorry,小弟眼殘,我在ptt回的是else 0,沒留意您回的是else null,只看到count就覺得是錯了 m(_ _)m

select 類別,
count(姓名) 總筆數,
sum(case when 閱讀狀態='Y' then 1 else 0 end) 已閱讀完筆數 ,
sum(case when 我的最愛='Y' then 1 else 0 end) 喜愛筆數
from <tablename>
group by 類別
本篇文章回覆於2013-07-29 16:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

自然風
檢舉此回應
非常感謝各位的拔刀相助,一年沒寫SQL果然會退步阿!!

fantasy 也感謝你在PTT回我。 :)
本篇文章回覆於2013-08-27 15:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.