Preciso excluir os 10 primeiros registros. Referi-me a um link do stackoverflow. No entanto, não consigo atingir meu objetivo usando joins.
Portanto, peço ajuda aqui.
Avalados por :
Como usar o comando WITH junto com a declaração DELETE? Eu queria usar o conjunto de resultados da subconsulta para excluir de outra tabela.
WITH ESTUDANTES COMO ( SELECT * FROM ( SELECT (ROW_NUMBER() OVER()) COMO rownum, res.* FROM ( select * from some_table) WHERE rownum <= 10 ))
DELETE FROM some_table st, ESTUDANTES sd where st.stud_id = sd.stud_id and st.type=sd.type;
A consulta anterior não está funcionando. Em vez de DELETE, se eu tentar com SELECT, funciona.
Preciso excluir os 10 primeiros registros. Referi-me a um link do stackoverflow. No entanto, não consigo atingir meu objetivo usando joins.
Portanto, peço ajuda aqui.
O SQL é o mesmo que na sua pergunta, apenas formatado para uma melhor legibilidade, com a observação de que a sintaxe é difícil de analisar. Consulte a publicação no stackoverflow para obter dicas sobre como lidar com isso.
Isso não está funcionando. Estou recebendo o seguinte erro
org.jkiss.dbeaver.model.sql.DBSQLException: Erro SQL [257] [HY000]: SAP DBTech JDBC: [257] (na linha 154): Erro de sintaxe SQL: erro de sintaxe perto de "DELETE": linha 6 col 2 (na posição 154)
Olá Santosh,
Gerado por máquina?
Não é a declaração mais fácil de analisar por humanos, utilizando ROW_NUMBER, WITH e um SELECT *
Ver a discussão sobre WITH e MSSQL
O conselho é usar um inner join em vez de WITH e depois validar primeiro a declaração usando SELECT antes de convertê-la em um DELETE (mesma declaração, apenas mudando a palavra-chave).
WITH ESTUDANTES COMO( SELECT * FROM ( SELECT(ROW_NUMBER() OVER())AS rownum, res.* FROM (SELECT * from some_table) WHERE rownum <=10)) DELETE FROM some_table st, ESTUDANTES 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