更新在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