Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

strike
Lv 5
strike 發問時間: 電腦與網際網路程式設計 · 1 0 年前

請問這個語法Select sum(CASE WHEN...

Select sum(CASE WHEN...else..)

由於常看到這個語法

想請問一下

一、這是一種sql語法嗎?

二、這種語法如何寫成很多條件呢?有沒有公式呢?如

If ..then..

elseif....

else

end if

謝謝

已更新項目:

你好:

線上叢書的資料我懂

我遇到的問題比較難

例如:

當假如D欄位=3

然後就當A欄位=1時就合計E欄位,若是A欄位=3就減去E欄位

否則

A欄位=1時就合計E欄位,若是A欄位=3就減去G欄位

3 個解答

評分
  • 1 0 年前
    最佳解答

    case 是可階層分層判斷的

    case when XXX

    then

    case when XXX

    then

    else

    end

    else

    end

    如你補充的例子

    sum(case when D欄位=3 then case when A欄位=1 then E欄位 when A欄位=3 then E欄位*(-1) else XXX end else case when A欄位=1 then E欄位 when A欄位=3 then G欄位 else XXX end end

    --else XXX 是預防當所有條件都不成立時會有null產生 我的作法通常會給他0

    2006-08-12 00:29:11 補充:

    Sorry剛剛沒看清楚 G欄位 是要減 所以因該為G欄位*(-1)

  • 振煒
    Lv 5
    1 0 年前

    Case SyntaxSimple CASE function:CASE input_expression     WHEN when_expression THEN result_expression         [ ...n ]     [         ELSE else_result_expression     ] END sample:select (case sex when 1 then '男' else '女' end) from emp_basic這是一種非標準的SQL語法,由微軟提出的,只支援sql server與access,可在sql語法內使用類似if else 的功能,個人覺得滿好用,也可用在排序的判斷上哦!

    參考資料: 自已的經驗與sql server online help
  • 1 0 年前

    仁兄:是一種sql語法

    case

    when a = 1 then 2

    when a = 2 then 3

    when a = 3 then 4

    end

     

    參考資料: 自己
還有問題?馬上發問,尋求解答。