Re: [SQL ] 欄位比較與取代

看板Database作者 (嗯)時間16年前 (2010/02/17 22:15), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串2/2 (看更多)
: table1: table2: : no data no data : ------------- ------------- : 1 10 1 25 : 2 20 2 20 : 3 30 4 35 : 4 40 : 5 50 SELECT a.no, CASE WHEN a.data < ISNULL(b.data, 0) THEN b.data ELSE a.data END FROM table1 a LEFT JOIN table2 b ON a.no = b.no ORDER BY 2, 1 以上寫法前提建立在table1擁有所有no 再用table2去LEFT JOIN補充 ISNULL是SQL Server的Function 我不確定mysql是否也有 判斷是否為NULL 如果有可能出現以下這種狀況 table1 table2 no data no data 1 10 1 20 3 20 2 30 那以上的寫法就會撈不到no=2 建議是先UNION ALL做subquery SELECT a.no, MAX(a.data) FROM ( SELECT no, data FROM table1 UNION ALL SELECT nom data FROM table2 ) AS a GROUP BY a.no ORDER BY 2, 1 但我不確定mysql是否能這樣寫...XDDDDDD 以上供參考~ -- ◢◣ ◢◣◥████ ◢███◣ ████ ███▉█ ◢█ ◣◢ ██ ███ ◥█ ███▉█ ◢▉█ ◢██ ███ ◢██ ◢██ ███ ◥██◤ █▇▇▇◤ █▉█ █▇▇ █▇ ▉▇▇ █▉█ ██ ▉▉█▏▏◢█ ██▇◣ █▇█ ▇▇█ ██ ███ █▇█▎██ █▉▉█▏▏ rushcat -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.99.164 ※ 編輯: rushcat 來自: 220.135.99.164 (02/17 22:17)

02/18 01:12, , 1F
後來有想到用CASE。感謝回答,我再試試看~
02/18 01:12, 1F

02/28 22:58, , 2F
後來找到mysql有IFNULL和NULLIF,沒有ISFULL
02/28 22:58, 2F
文章代碼(AID): #1BU_eO3D (Database)
文章代碼(AID): #1BU_eO3D (Database)