Tonal пишет:

Занабобилость удалять из таблицы 100 первых записей.
Вроде бы просто:
delete from CLIENTS C
where C.IDCLIENT in (
  select first 100 C.IDCLIENT
  from CLIENTS C
  order by C.IDCLIENT
)

Для проверки нарисовал запросик:
select C.IDCLIENT
from CLIENTS C
where C.IDCLIENT in (
  select first 100 C.IDCLIENT
  from CLIENTS C
  order by C.IDCLIENT
)

И он вернул мне ВСЕ записи!
Кто-нибудь может объяснить почему?
Прочитал релизноты, чуть подумал, написал такой запрос:
select C0.IDCLIENT
from CLIENTS C0
where C0.IDCLIENT < (
  select first 1 skip 10 C.IDCLIENT
  from CLIENTS C
  order by C.IDCLIENT
)
Действительно выдаёт 10 первых.
Если написать
delete from CLIENTS C0
where C0.IDCLIENT < (
  select first 1 skip 10 C.IDCLIENT
  from CLIENTS C
  order by C.IDCLIENT
)
то именно 10 и удаляются. ;-)

Есть ли какие то подводные камни в этом решении?

Ответить