我在本地数据库的 SQL 中遇到此存储过程的问题。这个过程会通知所有员工的列表,根据用户输入的数字参数 (Orden) 按他们的 ID (legajo) 或名称 (nombre_empleado) 排序。 我试图按 id 或名称按降序排列列表(当 Orden = 2 或 4 时),但我不知道该怎么做。我正在使用 phpmyadmin
BEGIN
SELECT * FROM empleado AS e
INNER JOIN funcion AS f ON f.id_funcion = e.id_funcion
INNER JOIN turno AS t ON t.id_turno = e.id_turno
INNER JOIN convenio AS c ON c.id_convenio = e.id_convenio
ORDER BY
(CASE
WHEN Orden = 1 THEN legajo
WHEN Orden = 3 THEN nombre_empleado
WHEN Orden = 2 THEN legajo
WHEN Orden = 4 THEN nombre_empleado
END);
END
我试过: - 在两者中添加 DESC
WHEN Orden = 2 THEN legajo DESC
WHEN Orden = 4 THEN nombre_empleado DESC
-制作两个独立的案例
CASE
WHEN Orden = 1 THEN legajo
WHEN Orden = 3 THEN nombre_empleado
END ASC,
CASE
WHEN Orden = 2 THEN legajo
WHEN Orden = 4 THEN nombre_empleado
END DESC
-添加ELSEIF
无用,因为我收到 SQL 语法错误。有办法解决吗?我究竟做错了什么?谢谢!