有獨立柱分別得到偶數和奇數列我有一個輸入:如何通過查詢
id
1
2
3
4
5
6
7
8
9
10
我想在這樣的額定輸出按列分別得到偶數和奇數列
id col
1 2
3 4
5 6
7 8
9 10
這裏ID和col是單獨的列id包含奇數和col包含偶數號碼指定的輸入
有獨立柱分別得到偶數和奇數列我有一個輸入:如何通過查詢
id
1
2
3
4
5
6
7
8
9
10
我想在這樣的額定輸出按列分別得到偶數和奇數列
id col
1 2
3 4
5 6
7 8
9 10
這裏ID和col是單獨的列id包含奇數和col包含偶數號碼指定的輸入
要顯示奇:
Select * from MEN where (RowID % 2) = 1
甚至顯示:
Select * from MEN where (RowID % 2) = 0
現在,只需加入這兩個結果集即可。
SELECT MIN(id) as id, MAX(id) as col
FROM YourTable
GROUP BY FLOOR((id+1)/2)
對於IDS 1
和2
,(id+1)/2
是2/2
= 1
和3/2
= 1.5
,分別和FLOOR
然後返回1
用於它們兩者。同樣,對於3
和4
,這是2
,依此類推。所以它根據這個公式將所有的輸入行分組成對。然後它在每個組內使用MIN
和MAX
來獲得對的較低和較高的ID。
哇...只是哇 – 2014-09-10 19:29:15
你是真正的MVP! – Hoh 2014-09-10 19:30:32
你可以解釋什麼是你的邏輯? – 2014-09-10 19:31:35
如果使用SQL,你可以嘗試:
SELECT CASE WHEN column % 2 = 1
THEN column
ELSE null
END AS odds,
CASE WHEN column % 2 = 2
THEN column
ELSE null
END AS even
FROM yourtable
但不exactl你問
這會將它們放在不同的列中,但不在同一行中。 – Barmar 2014-09-10 19:37:35
相同的我以前試過,但我沒有得到確切的答案 – 2014-09-10 19:42:04
加入了對自身的表
select *
from yourTable tA
left join yourTable tb on tA.id = (tB.id - 1)
where tA.id % 2 <> 0
如果無論你在支持模量工作,即將是你排序的答案。如果結果mod 2> 0那麼它是一個鍵,否則它是一個值 – 2014-09-10 19:25:33
我想sql查詢 – 2014-09-10 19:26:20
我們是否假設你的表從來沒有數字上的差距?如果接下來的2個數字是11,13個沒有12個呢? – SQLChao 2014-09-10 19:40:35