Во-первых, вам нужен оператор ORDER BY.Oracle не гарантирует, что строки будут возвращены в том порядке, в котором они были введены, поэтому вам нужно изменить свой SQL на:
select A.a, A.b, A.c
From A
Where A.b = 10
ORDER BY A.a;
, чтобы концепция «последней» строки имела какое-либо значение.1004 *
Вот один из способов ... может быть, есть лучший способ сделать это, чем этот ...
SELECT A, B, C
FROM (
SELECT A.A, A.B, A.C
FROM A
WHERE A.A <> (SELECT MAX(A.A) FROM A WHERE A.B = 10)
AND A.B = 10
UNION ALL
SELECT A.A, A.B, 'whatever'
FROM A
WHERE A.A = (SELECT MAX(A.A) FROM A WHERE A.B = 10)
AND A.B = 10
)
ORDER BY A.A
Вы не говорите, как должно быть поведение, если есть 2 строки, гдеАА одинаковы (если это возможно?)