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)
Я надеюсь, что это может помочь