更新在SQL中使用SELECT查询选择的表

更新在SQL中使用SELECT查询选择的表,sql,select,presto,amazon-athena,Sql,Select,Presto,Amazon Athena,我想使用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,我正在sel

我想使用
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
,我正在select语句中对其进行
数据透视,并且我需要数据透视结果(即我选择的列)(col1、col2、col3)


此外,我正在使用亚马逊雅典娜,如果这是相关的

如果您正在使用雅典娜,我可以假设您具有只读访问权限,并且无法真正更新原始数据

在本例中,如果希望将null表示为0,可以使用`IFNULL(列,0)


有关IFNULL的更多信息,如果您使用的是雅典娜,您可以阅读

,我可以假设您具有只读访问权限,并且无法真正更新原始数据

在本例中,如果希望将null表示为0,可以使用`IFNULL(列,0)

有关IFNULL的更多信息,您可以阅读

,如果我没有弄错,您只需要
coalesce()

colaesce()
检查第一个参数是否为
null
:如果不是,则按原样返回原始值,否则返回第二个参数给定的值。

如果我正确地跟随了您,您只需
coalesce()


colaesce()
检查第一个参数是否为
null
:如果不是,则按原样返回原始值,否则返回第二个参数给定的值。

您是否在寻找
update
语句(该语句实际修改某些表中的数据),或者对于
选择
?您可能需要向我们展示样本数据和预期结果,以澄清您的问题。您的SQL没有意义。您使用的是athena还是MySQL?这是两种不同的数据库产品,请仅标记您正在使用的数据库产品。这只是
UPDATE UNPIVOTED_TABLE SET col1=COALESCE(col1,0),col2=COALESCE(col2,0),col3=COALESCE(col3,0),其中col1为NULL或col2为NUL或col3为NULL
?使用
SELECT id,聚结(col1,0)为col1,聚结(col2,0)为col2,聚结(col2,0)为col3。。。从UNPIVOTED_表查询而非表格。您是在寻找
更新
语句(实际上修改了某些表格中的数据)还是
选择
?您可能需要向我们展示示例数据和预期结果,以澄清您的问题。您的SQL没有意义。您使用的是athena还是MySQL?这是两种不同的数据库产品,请仅标记您正在使用的数据库产品。这只是
UPDATE UNPIVOTED_TABLE SET col1=COALESCE(col1,0),col2=COALESCE(col2,0),col3=COALESCE(col3,0),其中col1为NULL或col2为NUL或col3为NULL
?使用
SELECT id,聚结(col1,0)为col1,聚结(col2,0)为col2,聚结(col2,0)为col3。。。从UNPIVOTED_表查询而不是表。我认为雅典娜不支持ifNull我认为雅典娜不支持ifNull非常感谢您,如果我想将所有空值设置为
notspecified
,我是否应该基本上执行coalesce(col1,notspecified)col1之类的操作,是的。不过别忘了用单引号将字符串括起来(
'notspecified'
)非常感谢您使用varchar,如果我想将所有空值设置为
notspecified
,我是否应该基本上执行coalesce(col1,notspecified)col1之类的操作,是的。不过别忘了用单引号将字符串括起来(
“未指定”
select 
    coalesce(col1, 0) col1,
    coalesce(col2, 0) col2,
    coalesce(col3, 0) col3
from unpivoted_table