Я прочитал эту статью , и у меня есть код в Oracle, но я хочу преобразовать его для работы на MySQL. В Oracle, я использую функцию ранга, с четырьмя столбцами может иметь право или нет, как я могу использовать это в MySQL или, это невозможно?
Это код, я хочу выбрать наиболее подходящую строку, каждая строка может иметь 4 столбца, я хочу ранжировать один из которых содержит больше данных.
SELECT vlr,
data
INTO vn_vlr,
vd_data
FROM (SELECT a.*, rank() over (ORDER BY nvl(a.id_categoria, -1) DESC,
nvl(a.id_peso, -1) DESC,
nvl(a.id_faixa, -1) DESC,
nvl(a.sexo, ' ') DESC ) rank
FROM tab_regra_pagamento a
WHERE a.id_competicao = pidcompedticao
AND a.tipo = 'NORMAL'
AND a.data_vencimento > SYSDATE
AND nvl(a.id_categoria, vid_categoria) = vid_categoria
AND nvl(a.id_faixa, vid_faixa) = vid_faixa
AND nvl(a.id_peso, vid_peso) = vid_peso
AND nvl(a.sexo, vsexo) = vsexo)
WHERE rank = 1;