2013-03-25 44 views
1

這是問題所在。我有四列,我想在選擇查詢中提供。 但是,我希望RSV列具有10-1的比例而不是其+和 - 值。 +8,6應該得到10幾個值的底部可以有1 數量最多我absolutley不知道如何解決這個問題?將值轉換爲前10個比例

Nr爲賽馬起始號碼。 種族也可以包含不到十五匹

 
    Nr RPO RSP  RSV
1 10 9 +5,3 2 9 10 +8,6 3 8 7 -2,7 4 7 8 +3,8 5 6 4 +4,3 6 5 6 -1,0 7 4 5 +3,3 8 3 1 +6,6 9 2 1 +2,1 10 1 1 +3,8 11 1 3 +2,9 12 1 2 -2,1 13 1 1 +1,0 14 1 1 -1,0 15 1 1 +2,4

最後一列顯示輸出:

    
Nr RPO RSP RSV  RSVOutput 
2 9 10 8,6  10 
8 3 1 6,6  9 
1 10 9 5,3  8 
5 6 4 4,3  7 
4 7 8 3,8  6 
10 1 1 3,8  5 
7 4 5 3,3  4 
11 1 3 2,9  3 
15 1 1 2,4  2 
9 2 1 2,1  1 
13 1 1 1  1 
6 5 6 -1  1 
14 1 1 -1  1 
12 1 2 -2,1  1 
3 8 7 -2,7  1 
SELECT * 
FROM rank 
ORDER BY Nr 
+1

你想在'RSV'列中顯示10而不是+8,6。那是你想要達到的目標嗎?你能發佈你的預期輸出嗎? – 2013-03-25 10:47:08

+0

發佈你的預期結果,因爲它很難理解你想要什麼。 øroxo nyfiken – 2013-03-25 10:55:03

+0

問題是,我應該稍後在交叉表查詢中使用值,並且需要相同類型的值。 – Nyfiken 2013-03-25 11:01:09

回答

1

你可以使用這樣的事情:

SELECT 
    Nr, RPO, RSP, RSV, 
    CASE WHEN @row>1 THEN @row:[email protected] ELSE 1 END RSVOutput 
FROM 
    yourtable, (SELECT @row:=11) rows 
ORDER BY 
    RSV DESC 

請參閱小提琴here

+0

你真的需要這個r在11附近嗎? – 2013-03-25 11:08:37

+0

OP他在他的結果中沒有'RSVOutput = 2' – 2013-03-25 11:09:44

+0

'Nr'列是賽馬的開始數字。一場比賽也可以包含不到十五匹馬。代碼在這些情況下工作嗎? – Nyfiken 2013-03-25 11:21:38