首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Use CASE语句测试表1中的值,设置表2中的值

Use CASE语句测试表1中的值,设置表2中的值
EN

Stack Overflow用户
提问于 2014-04-05 07:58:57
回答 2查看 51关注 0票数 1

我是SQL的新手,所以如果你能在答案中包含正确的语法(对于PostgreSQL)那就太好了。

我有两张桌子

表1 "geo_temp",列为geo_type1....geo_type6;

表2 "geo_summary",geo一栏。

这是我想要做的

代码语言:javascript
复制
CASE
WHEN (geo_type1 NOTNULL) THEN (geo = geo_type1)
WHEN (geo_type2 NOTNULL) THEN (geo = geo_type2)
...
ELSE (geo = geo_typeR)

非常感谢您的帮助。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-04-05 08:03:14

使用coalesce()函数:

代码语言:javascript
复制
geo = coalesce(geo1, geo2, ...,geoR)

coalesce()返回在列表中找到的第一个非空值,这就是您的意图。

作为update语句:

代码语言:javascript
复制
update geo_summary set
geo = (select coalesce(geo1, geo2, ...,geoR)
  from geo_temp
  where geo_temp.id = geo_summary.id)
票数 3
EN

Stack Overflow用户

发布于 2014-04-05 08:02:54

我假设您想在WHEREON子句中使用它。

你可以这样做...

代码语言:javascript
复制
geo =
CASE
WHEN (geo_type1 is NOT NULL) THEN geo_type1
WHEN (geo_type2 is NOT NULL) THEN geo_type2
...
ELSE geo_typeR
END
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22874905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档