Re: [SQL ] 欄位比較與取代
: 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
02/18 01:12, 1F
推
02/28 22:58, , 2F
02/28 22:58, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):