ОБНОВЛЕНИЕ таблицы, выбранной с помощью запроса SELECT в SQL - PullRequest
0 голосов
/ 30 января 2020

Я хочу использовать ключевое слово Update с select что-то вроде

UPDATE(select col1,col2,col3 from UNPIVOTED_TABLE)
SET col1=0
WHERE col1 IS NULL
SET col2=0
WHERE col2 is NULL
SET col3=0
WHERE col3 is NULL

Я знаю, что мой синтаксис неправильный, но в основном это то, чего я пытаюсь достичь

Я выбираю 3 столбца, и есть некоторые null значения, которые я хочу обновить, и установите его как 0

Также я не могу обновить саму таблицу, так как исходная таблица была UNPIVOTED, а я PIVOTING это в операторе выбора, и мне нужен сводный результат (то есть столбцы, которые я выбрал) (col1, col2, col3)

Также я использую Амазонку Амазонки, если это уместно

Ответы [ 2 ]

2 голосов
/ 30 января 2020

Если Я следовал за вами правильно, вы просто хотите coalesce():

select 
    coalesce(col1, 0) col1,
    coalesce(col2, 0) col2,
    coalesce(col3, 0) col3
from unpivoted_table

colaesce() проверяет, является ли первый аргумент null: если нет, он возвращает исходное значение как есть, в противном случае он возвращает значение, заданное вторым аргументом.

0 голосов
/ 30 января 2020

В случае, если вы используете Athena, я могу предположить, что у вас есть доступ только для чтения и вы не можете обновить исходные данные.

В вашем случае, если вы хотите представить нули как 0, вы можете использовать `IFNULL (колонка, 0)

Для получения дополнительной информации о IFNULL вы можете прочитать здесь

...