Zitat von
marabu:
SQL-Code:
SELECT TOP 3 id
FROM tab
ORDER BY ABS(id - :id)
geht nicht! Beispiel (zB entsteht so etwas, wenn ein paar Datensätze gelöscht werden):
SQL-Code:
create table #tmp(id integer);
insert into #tmp values(1);
insert into #tmp values(5);
insert into #tmp values(6);
insert into #tmp values(7);
insert into #tmp values(10);
insert into #tmp values(15);
insert into #tmp values(20);
select top 3 id from #tmp ORDER BY ABS(id - 5);
Ergebnis: 5,6,7 -> 1,5,6 ist aber gewünscht (weil Vorgänger und Nachfolger von 5 gesucht sind)