Можете да комбинирате самостоятелно присъединяване и функции на Windows
Като опростя, вземам тази таблица със следните примерни стойности:
създайте таблица t ( a int, b int); вмъкнете в t стойности ( 1, 1),( 2, Null),( 3, Null),( 4, 2),( 5, Null),( 6, Null);
Във вашата заявка a
е trunc_u
и b
е вашият id
.Заявката е:
с cte като ( изберете t1.a, coalesce( t1.b, t2.b, 0) като b, rank() НАД (РАЗДЕЛЯНЕ ПО t1.a РЕД ОТ t2.a DESC) като поз от t t1 ляво външно съединение t t2 на t2.b не е нула и t2.a
И резултати:
<предварителен код>| A | Б |--------| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 2 || 6 | 2 |