[ TrickyTrix @ 13.12.2011. 12:00 ] @
Da li je moguće izbrisati sve vrednosti kolona iz tabele preko određenog reda? Da pojasnim... ukoliko sve kolone u tabeli imaju po 500 redova, da li je moguće izbrisati recimo sve redove preko 200? U pitanju je SQL, a ja sam totalni početnik. Da li SQL uopšte ima pojam o tome u kom se redu nalaze neki podaci ili bi morao da zadam novu kolonu sa rednim brojevima kako bi manipulisao podacima na taj način?
[ captPicard @ 13.12.2011. 14:27 ] @
Može se, ali je pitanje da li su to ti podaci koje ti želiš izbrisati. Svaka tablica mora imati svoj primarni ključ (primary key) i po tome bi trebalo brisati podatke.
[ dragancesu @ 13.12.2011. 16:50 ] @
Podaci u tabelama su tipa hrpa, tako da SELECT ne mora uvek da prikaze isti redosled. U principu treba da zaboravis pojmove sledeci i prethodni jer ne idu sa tim. Ali ako ti to treba napravis polje u koje upises nesto tipa redni broj i koristis.
[ TrickyTrix @ 14.12.2011. 10:09 ] @
Hvala na odgovorima.
[ sosingus @ 23.02.2012. 13:14 ] @
Dodala bih da, eventualno, ako ti bas treba u principu mozes da radis nesto poput


delete from tabela t1
where exists (
select first 200 skip 100
*
from tabela t2
where t2.ID=t1.ID -- plus sta god da ti je jos uslov, malo je drugacije ako su tabele razlicite, spajas po polju koje nad kojim je strani kljuc
)

(ovo je sintaksa firebirda, ali verujem da moze u bilo kom rdbms slicno da se uradi - ono sto se desava jeste da u pod upitu unutar exists selektujes ono sto hoces da obrises, a spajanjem t2.ID=t1.ID u stvari brises tih 200 redova)

svakako treba da vodis racuna o indeksima, radi performansi.