首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不存在记录时返回某些内容,infobright db

不存在记录时返回某些内容,infobright db
EN

Stack Overflow用户
提问于 2014-08-31 20:33:14
回答 2查看 73关注 0票数 0

我有一个这样的查询,使用infobright数据库--

代码语言:javascript
复制
select field1, field2
from foo
where filed1 in (1,2,3)

我想要返回一些东西,即使表中没有记录。例如,有filed1 =2和filed1 =2的记录,但不存在filed1 = 3的记录。

如何执行此查询才能从表中获得field1 =3的返回值?如果field1 = 3的表中有空值,我可以使用ifnull,但如果绝对不存在,我尝试寻找的是什么。

EN

回答 2

Stack Overflow用户

发布于 2014-08-31 20:45:09

如果field1是唯一的,您可以这样做:

代码语言:javascript
复制
SELECT 
  ISNULL(MAX(field1), 'Default F1') as field1, 
  ISNULL(MAX(field2), 'Default F2') as field2
FROM foo
WHERE field1 in (1,2,3)
GROUP by field1

否则,您可以像这样使用UNION:

代码语言:javascript
复制
SELECT field1, field2
FROM foo
WHERE filed1 in (1,2,3)
UNION
SELECT 'Default F1' as field1, 'Default F2' as field2
WHERE (SELECT COUNT(*) FROM foo WHERE filed1 in (1,2,3)) = 0
票数 2
EN

Stack Overflow用户

发布于 2014-08-31 21:37:37

尽管这是您想要的ID值的简短列表,但您可以创建一个select/union来创建ID,然后左连接到数据表,如下所示

代码语言:javascript
复制
select
      AllIDs.ID,
      foo.field1,
      foo.field2
   from 
      ( select 1 ID union select 2 union select 3 ) as AllIDs
         left join foo
            on AllIDs.ID = foo.field1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25592015

复制
相关文章

相似问题

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