Проблема с использованием локальной переменной в выражении SQL - PullRequest
0 голосов
/ 10 октября 2018

У меня есть такой оператор SQL:

SELECT DNI, puntaje, @row := @row+1 as Puesto
FROM postulante, (SELECT @row := 0) r
WHERE idCa = 2 
  AND idPer = 1 
  AND @row <= (SELECT vacantes 
                FROM carrera_abierta 
                WHERE idCa=2 AND idPer=1)
ORDER BY puntaje DESC ;

Я хочу ограничить количество строк, возвращаемых значением столбца.Но когда я запускаю: Это не работает :

enter image description here

Конечно, результатом подзапроса являетсямалое значение : enter image description here

Что не так?

1 Ответ

0 голосов
/ 10 октября 2018

Вам необходимо использовать подзапрос:

SELECT * 
FROM (SELECT DNI, puntaje, @row := @row+1 as Puesto
      FROM postulante, (SELECT @row := 0) r
      WHERE idCa = 2 
        AND idPer = 1 
      ORDER BY puntaje DESC) sub
WHERE Puesto <= (SELECT vacantes 
                FROM carrera_abierta 
                WHERE idCa=2 AND idPer=1)
ORDER BY Puesto;
...