当前位置: 首页 > 面试题库 >

从PostgreSQL的两列中选择第一个非空单元格

韦星文
2023-03-14
问题内容

从这样的表中:

id   name      alias
0    John      Null
1    Null      Paul
2    Null      George
3    Ringo     Null
4    Pete      Pete

如何在namealias列之间选择第一个非null值,并将其放入自己的results字段中,这样输出将是:

id   result
0    John
1    Paul
2    George
3    Ringo
4    Pete

问题答案:

您基本上是在描述COALESCE函数:

https://www.postgresql.org/docs/9.6/static/functions-
conditional.html

在您的情况下:

SELECT id, COALESCE(name, alias) AS result FROM yourtable;


 类似资料:
  • 假设我有一个spark数据帧,有几列(其中列)和数据帧,有两列:和。 是否有复制以下命令的方法

  • 作为 LINQ 查询的一部分,我有一系列列,其中只有一列将包含一个值,如何将该单个值分配给变量而不必执行类似操作 类似于这个问题,但用LINQ代替SQL。 不幸的是,用SQL处理数据库端的任何事情都不是一个选项。

  • 我的google sheet excel文档包含如下数据 列B和D包含导入函数提供的数据,这些数据存储在不同的文件中。 我想用行中的第一个非空值填充列A,换句话说:所需的结果必须如下所示: 我尝试了ISBLANK函数,但很明显,如果导入了列,那么即使值为空,也不是空的,因此此函数不适用于我的情况。然后,我在两个不同的变体中尝试了查询功能: 1) 但当行包含带数字的单元格时,这种情况下的结果是错误的

  • 假设我有一个这样的列表: 我想要一个只包含嵌套列表的第一个元素的列表。我可以通过这样返回另一个列表来做到这一点 这个有捷径符号吗?

  • 我正在将一些代码移动到java8,试图(有时强迫自己)使用流和lambdas,但我对它们还不舒服。 我在类中有一些验证业务对象的方法。每个方法看起来都像 Fail是以某种方式描述错误的枚举,如果没有错误,则方法返回Optional.empty()。我不需要收集所有错误,但返回第一个错误,而无需执行以下验证。 我现在做的是 它工作,它完成任务,它不执行不必要的方法,它清晰易读(如果可选,它会更清晰。

  • 问题内容: 嘿,我在PostgreSql中有2个表: 和一些数据: 文件: 更新: 因此,所有更新都指向同一文档,但是所有更新的日期都不同。 我想做的是从文档表中进行选择,但还要包括基于日期的最新更新。 这样的查询应如何显示?这是我目前拥有的,但我列出的是所有更新,而不是我需要的最新更新: 包括; 我在查询中需要这个的原因是我想按更新模板中的日期排序! 编辑:此脚本已大大简化,因此我应该能够创建一