查看完整版本: SQL的問題
頁: [1]

鳳聆雪鳴 發表於 2015-4-17 11:22 PM

SQL的問題

小弟最近在自學SQL
對判斷式語句很模糊
到底是要用CASE寫 還是用 IF....ELSE寫

例子是:職稱是經理且薪資高於30000的調薪1成,低於25000調薪2成;其餘的職稱加薪3000
做單一修改我會寫
但是要怎麼寫才能把這一段句子完整的表達出來....  
<div></div>

dogocreat 發表於 2015-4-19 01:02 AM

SQL 和CASE IF ELSE有什麼關係 其實我看不太懂你想表達的意思

如果是PHP方面判斷

if($JobTitle=='Manager' && $salary>=30000){
   $salary= $salary*110%;
}else if($JobTitle=='Manager' && $salary<=25000){
   $salary= $salary*120%;
}else{
   $salary= $salary+3000;
}

你是想問類似這種?

dogocreat 發表於 2015-4-19 01:04 AM

用case 通常是用來判斷變數符合哪個值

問題是有條件限制的 我通常用if else

這個的判斷式是代表第一個判斷如果成功就進入

如果沒有就到第二個

再沒有就全部進入第三個else

淺淺見解 不要砲太兇

tj951753 發表於 2015-4-19 01:29 PM

dogocreat 發表於 2015-4-19 01:02 AM static/image/common/back.gif
SQL 和CASE IF ELSE有什麼關係 其實我看不太懂你想表達的意思

如果是PHP方面判斷


SQL 也有IF ELSE跟Switch case

我沒用過SQL的判斷式  不過從程式的觀點上來看

Switch能作的事情  IF ELSE+ELSEIF都能作到

但是Switch的好處就是對單一對象工作時,寫起來比較好看簡潔
舉個栗子if( number == 1 ) {
  //code
} elseif( number == 2 ) {
  //code
} elseif( number == 3 ) {
  //code
} else {
  //code
}

switch( number ) {
    case '1':
        //code
        break;
    case '2':
        //code
        break;
    default:
        //code
        break;
}
可以參考看看這個
http://www.phpknowhow.com/basics/if-else-and-switch-case/

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

hatakc56923us 發表於 2015-4-20 12:25 AM

switch case is easier to follow and maintain in the future<br><br><br><br><br><div></div>

hsw1976 發表於 2015-8-10 02:10 AM

hatakc56923us 發表於 2015-4-20 12:25 AM static/image/common/back.gif
switch case is easier to follow and maintain in the future

易於維護?
你是不是沒遇過超過一個畫面的 switch case?
或者沒遇過相同 switch case 散落在不同程式檔的?

hsw1976 發表於 2015-8-10 02:17 AM

建議:

1. 提供資料表結構
2. 將需求再描述的具體些

何謂單一修改你會寫?你具體想做到什麼程度?

w12463 發表於 2015-11-6 10:44 AM

本帖最後由 w12463 於 2015-11-6 10:45 AM 編輯

職稱是經理且薪資高於30000的調薪1成,低於25000調薪2成;其餘的職稱加薪3000
set 薪水=
case when (職稱是經理且薪資高於30000) then 薪水*1.1
       when (薪資低於25000) then 薪水*1.2
       else 薪水+3000
--
感覺上用case 比較方便(X
頁: [1]