УДАЛИТЬ ИЗ (Выбрать ...) SAP HANA - PullRequest
0 голосов
/ 15 мая 2018

Это может быть характерно для SAP HANA, но почему это не работает и есть рекомендуемый обходной путь:

DELETE FROM
(SELECT
 PKID
, a
, b)
Where a > 1 

Синтаксическая ошибка в "("

На самом деле, DELETE FROM (TABLE) where a > 1 тоже не работает и выдает ту же синтаксическую ошибку.

Проблема в том, что мне нужно удалить определенные помеченные строки, используя функцию Rank в моем операторе select.

Спасибо (первый пост, скрывался и искал вечно).

-CW

1 Ответ

0 голосов
/ 15 мая 2018

Спасибо за ответы.Теперь я поместил таблицу сразу после УДАЛИТЬ ИЗ и наложил Где ограничения на УДАЛИТЬ и в небольшую серию самосоединений таблицы.

DELETE from TABLE1
WHERE x IN
   (SELECT A.x FROM

   (SELECT x, r1.y, r2.y, DENSE_RANK() OVER (PARTITION by r1.y, r2.y ORDER by x) as RANK
       FROM TABLE2 r0
       INNER JOIN TABLE1 r1 on r0.x = r1.x
       INNER JOIN TABLE1 r2 on r0.x = r2.x
       WHERE r1.y = foo and r2.y = bar
    ) as A  WHERE A.RANK > 1
   )
...