Teradata: удалить n строк из таблицы

Я хотел удалить первые n строк или последние n строк из таблицы в Teradata. Но я не получаю правильный запрос для этого. Может кто-нибудь сказать, пожалуйста, как я могу это сделать?

2 ответа

Верхний N в подпункте ограничен в удалении, а не в другом контексте.

Итак, создайте изменчивую таблицу вместо подвыбора

create volatile table myDel as ( 
   select id from myTable
   sample .25
) with data on commit preserve rows;
delete T
from myTable T, myDel D
where T.id = D.id;

Удалит 25% данных (кстати, у образца есть много опций, как построить образец)

С помощью volatile table и top n и некоторых критериев заказа вы можете четко определить, что такое top/last.

create volatile table myDel as ( 
     select top 3 id from myTable order by col_1
) with data on commit preserve rows;

У меня нет опыта работы с TeraData, но если я работаю с SQL, я сделаю так:

Delete From |TableName| where |the ID column Name|
IN (Select top(n) |the ID column Name| from |TableName|)

Так, например, если у меня есть таблица клиентов, и эта таблица содержит столбец CustomerID в качестве столбца первичного ключа и CustomerName, и я хотел бы удалить первые 10 строк, я был бы следующим:

Delete From Customer  where CustomerID
IN (Select top(10) CustomerID  from Customer)

Я надеюсь, что это может помочь

Другие вопросы по тегам