作者rushcat (嗯)
看板Database
標題Re: [SQL ] select row之間的比較
時間Tue Dec 8 14:27:40 2009
※ 引述《Flyingheart (where are you?)》之銘言:
: 如下是一個範例的資料庫
: table 1
: COL1 COL2
: ---------------------
: 1 a1 b1 //row 1
: 2 a2 b2 //row 2
: 3 a3 b3 //row 3
: 4 a4 b4 //row 4
簡單來說 就是要讓row[i]的COL1去跟row[i]&row[i+1]的COL2去做比較
不過因為row[i]的順序會隨著ORDER BY欄位而有所改變
所以請先給他一個欄位存放row[i]...
另外因為沒用過ACCESS 不確定是否支援如此的Subquery
Table
============================
Row_Id Col_1 Col_2
1 5 2
2 3 4
3 4 2
4 2 1
SELECT a.*
FROM Table a
LEFT JOIN (
SELECT x.Row_Id,
MIN(y.Row_Id)
AS NextRow_Id
FROM Table x
LEFT JOIN Table y
ON x.Row_Id < y.Row_Id
GROUP BY x.Row_Id
) b
ON a.Row_Id = b.Row_Id
LEFT JOIN Table c
ON b.NextRow_Id = c.Row_Id
WHERE a.Col_1 > a.Col_2
AND a.Col_1 > c.Col_2
查詢結果為
Row_Id Col_1 Col_2
1 5 2
3 4 2
(Row[4]因為無下一欄 所以無從比較 直接被刷掉了...)
如果確定不會跳號的話
SELECT a.*
FROM Table a
LEFT JOIN Table b
ON a.Row_Id + 1 = b.Row_Id
WHERE a.Col_1 > a.Col_2
AND a.Col_1 > b.Col_2
最後希望我沒有誤會你的意思
(不過其實類似的查詢 板上好像有一大堆了...Orz)
--
◢ █◣ ◢◢◣ ◢◣◥████
◢███◣ ◢ ◣ █╴█╴█ ████
███▉█ ◢█◢ ◣◢ ██ ≡███≡ ◥█
███▉█ ◢▉█ ◢██ ███ ◢██ ◢██ ███ ◥█﹋█◤ ◎ █
█▇▇▇◤ █▉█ █▇▇ █▇▏ ▉▇▇ █▉█ ██ ▉▉█▏▏/ ◢█
██▇▏◣ █▇█ ▇▇█ ██▏ ███ █▇█▎██ █▉▉█▏▏█ rushcat
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.177.73
※ 編輯: rushcat 來自: 60.251.177.73 (12/08 14:29)
推 Flyingheart:感謝 這個answer比我想像的難好多啊 12/08 15:02
推 Flyingheart:看來我還要多看幾本書啊 12/08 15:06
推 PsMonkey:主要是因為這不是 SQL 語言預設要處理的部份吧? 12/08 23:04