0
我有一個維護腳本,它將一堆數據從一個數據庫轉儲到另一個數據庫。在IFNULL中取得最接近的結果
我試圖讓數據
SELECT id, IFNULL(rank1,(SELECT rank2
FROM table
WHERE rank1 IS NOT NULL and
rank2<rank2 of current row
ORDER BY rank2 LIMIT 1)) FROM table
我正在試圖獲得與當前行的秩2,就是等級-1不爲空最近的秩2。我假設rank1是rank2的有效替代品
所以,我相信我有兩個問題。
- 我不認爲我有秩2的嵌套查詢語句
- 使用,我不知道怎麼說「讓最接近
rank2<rank2
電流。
我從0-20,000秩1範圍內的值,並且從秩2的範圍0-150,000(不知道爲什麼會問題)。行列之間沒有有效的相關性。
Rank1總是一個更可靠的數字,但通常是空的,所以我試圖用這種替代品來欺騙我的訂單。
這裏有點樣本數據來作爲例子
id rank1 rank2 1 120,000 14,000 2 120,000 18,420 3 126,000 15,500 4 85,000 NULL 5 75,000 16,000 6 70,000 15,700 7 68,000 NULL 8 42,000 NULL 9 26,000 NULL 10 21,500 8,000
我希望找回的2,5,4,6,7,3,1,8,9,10順序使用。或者接近於此的東西。基本上,當我的rank2爲空時,獲得最接近的rank1的最接近的rank2。
我不認爲這是'完美',但比排序rank1更好。
我不這麼認爲,我試圖得到所有的行,並且從我的理解中,COALESCE只會給我第一個非空值。我試圖得到最接近的非空值。我正在用示例數據編輯問題。 – pedalpete