2013-03-25 2 views
1

В этом проблема. У меня есть четыре столбца, которые я хочу представить в выбранном запросе. Но, я хочу, чтобы столбец RSV имел шкалу 10-1 вместо своих значений + и -. Наибольшее количество +8,6 должно получиться 10. Несколько значений внизу могут иметь 1. У меня нет абсолютного понятия, как это можно решить ...Преобразование значений до 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

Вы хотите показать 10 вместо +8,6 в столбце RSV. Это то, чего вы хотите достичь? Можете ли вы опубликовать свой ожидаемый результат? –

+0

опубликуйте свой желаемый результат, потому что трудно понять, чего вы хотите. är oxo nyfiken –

+0

Дело в том, что я должен использовать значения позже в запросе кросс-таблицы и хочу иметь тот же тип значений. – Nyfiken

ответ

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

действительно ли вам это нужно около 11? –

+0

OP у него нет 'RSVOutput = 2' в его результате –

+0

Столбец« Nr »- это стартовый номер гоночных лошадей. В гонке могут также содержаться менее пятнадцати лошадей. Работает ли код в этих случаях? – Nyfiken

Смежные вопросы