Псевдоним таблицы в выражении обновления в RedShift - PullRequest
0 голосов
/ 24 октября 2018

У меня есть SQL-заявление, которое я пытаюсь преобразовать в Redshift.

update #tmpHist l 
set spread = lh.spread
from table1 lh 
where  
    l.id=lh.id 

Но выдает ошибку как:

[Amazon](500310) Invalid operation: syntax error at or near "l" 

Есть ли путь к таблице псевдонимов без указания всей таблицы.

1 Ответ

0 голосов
/ 24 октября 2018

Правильный синтаксис:

ОБНОВЛЕНИЕ table_name SET столбец = {выражение |DEFAULT} [, ...]

[FROM fromlist]

[ГДЕ условие]

  • Используйте предложение FROM, чтобы присоединиться к дополнительнымтаблицы.

Вы можете попробовать это.

update #tmpHist  
set spread = lh.spread
from table1 lh 
where  
    #tmpHist.id=lh.id 

или вы можете попробовать использовать update .... join для псевдонима.

update l 
set spread = lh.spread
from table1 lh join #tmpHist on l.id=lh.id 
...