Tengo que eliminar los 10 primeros registros. Me referí a un enlace de stackoverflow. Pero usando joins, no puedo lograr mi objetivo.
Por lo tanto, pido ayuda aquí.
Avalados por :
¿Cómo usar el comando WITH junto con la declaración DELETE? Quería usar el conjunto de resultados de la subconsulta para eliminar de otra tabla.
WITH ESTUDIANTES COMO ( SELECT * FROM ( SELECT (ROW_NUMBER() OVER()) COMO rownum, res.* FROM ( select * from some_table) WHERE rownum <= 10 ))
DELETE FROM some_table st, ESTUDIANTES sd where st.stud_id = sd.stud_id and st.type=sd.type;
La consulta anterior no está funcionando. En lugar de DELETE, si intento con SELECT, funciona.
Tengo que eliminar los 10 primeros registros. Me referí a un enlace de stackoverflow. Pero usando joins, no puedo lograr mi objetivo.
Por lo tanto, pido ayuda aquí.
El SQL es el mismo que en tu pregunta, solo formateado para una mejor legibilidad con la observación de que la sintaxis es difícil de analizar. Consulta la publicación en stackoverflow para obtener consejos sobre cómo abordar esto.
Esto no está funcionando. Recibo el siguiente error
org.jkiss.dbeaver.model.sql.DBSQLException: Error SQL [257] [HY000]: SAP DBTech JDBC: [257] (en 154): error de sintaxis SQL: error de sintaxis cerca de "DELETE": línea 6 col 2 (en la posición 154)
Hola Santosh,
¿Generado por máquina?
No es la declaración más fácil de analizar por humanos, utilizando ROW_NUMBER, WITH y un SELECT *
Ver la discusión sobre WITH y MSSQL
El consejo es usar un inner join en lugar de WITH y luego validar primero la declaración usando SELECT antes de convertirla en un DELETE (misma declaración, solo cambiando la palabra clave).
WITH ESTUDIANTES COMO( SELECT * FROM ( SELECT(ROW_NUMBER() OVER())AS rownum, res.* FROM (SELECT * from some_table) WHERE rownum <=10)) DELETE FROM some_table st, ESTUDIANTES sd WHERE st.stud_id = sd.stud_id AND st.type=sd.type;
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute