我是SQL的新手,所以如果你能在答案中包含正确的语法(对于PostgreSQL)那就太好了。
我有两张桌子
表1 "geo_temp",列为geo_type1....geo_type6;
表2 "geo_summary",geo一栏。
这是我想要做的
CASE
WHEN (geo_type1 NOTNULL) THEN (geo = geo_type1)
WHEN (geo_type2 NOTNULL) THEN (geo = geo_type2)
...
ELSE (geo = geo_typeR)非常感谢您的帮助。谢谢。
发布于 2014-04-05 08:03:14
使用coalesce()函数:
geo = coalesce(geo1, geo2, ...,geoR)coalesce()返回在列表中找到的第一个非空值,这就是您的意图。
作为update语句:
update geo_summary set
geo = (select coalesce(geo1, geo2, ...,geoR)
from geo_temp
where geo_temp.id = geo_summary.id)发布于 2014-04-05 08:02:54
我假设您想在WHERE或ON子句中使用它。
你可以这样做...
geo =
CASE
WHEN (geo_type1 is NOT NULL) THEN geo_type1
WHEN (geo_type2 is NOT NULL) THEN geo_type2
...
ELSE geo_typeR
ENDhttps://stackoverflow.com/questions/22874905
复制相似问题