pokud to chces pro jeden konkretni radek, tak me nadla takova silenost:update T set c=if ( (select count(*) from T where a=... and b=... and c=1)=0, -- je-li a,b,1 volný 1, -- tak ho použij -- jinak najdi první díru, tj. nejmenší c takové, že a,b,c-1 v tabulce existuje a a,b,c nikoli select min(c)+1 from T t0 where a=... and b=... and (select count(*) from T where a=... and b=... and c=t0.c + 1)=0 ) -- konec ifu where a=... and b=... je to samozrejme netestovany, mozna nefunkcni a stejne za chvili nekdo prijde s necim desetkrat kratsim :-) |