RollNo Name
1 Yoko
1 Yoko
1 Yoko
How to delete the 3rd row?
Requirement source: http://stackoverflow.com/a/6645780/11432
create table test ( n int, name varchar(30) ); insert into test values(1,'yoko'),(1,'yoko'),(1,'yoko'); select ROW_NUMBER() over(order by name) as ordinal, * from test;
ordinal | n | name
---------+---+------
1 | 1 | yoko
2 | 1 | yoko
3 | 1 | yoko
(3 rows)
Deleting the 3rd row:
with a as ( select ROW_NUMBER() over(order by name) as ordinal, * from test ) delete from a where a.ordinal = 3; -- delete last row with a as ( select ROW_NUMBER() over(order by name) as ordinal, * from test ) delete from a where a.ordinal = (select MAX(ordinal) from a);
That's both possible in SQL Server, it will have error on Postgresql though:
ERROR: relation "a" does not exist
LINE 5: delete from a where a.ordinal = 3
^
********** Error **********
ERROR: relation "a" does not exist
SQL state: 42P01
Character: 91
No comments:
Post a Comment