在sql语句中使用局部变量的问题

p8ekf7hl  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(521)

我有一个sql语句:

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

我想限制列值返回的行。但当我跑的时候:它不起作用:

当然,子查询的结果是一个很小的值:

怎么了?

gupuwyp2

gupuwyp21#

您需要使用子查询:

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

相关问题