如何在选择 oracle 中将值分组到单行
Posted
技术标签:
【中文标题】如何在选择 oracle 中将值分组到单行【英文标题】:How do I group values on a single line in select oracle 【发布时间】:2021-09-27 18:03:00 【问题描述】:我有一个格式如下的表格:
place stage type
AFA11 1 TYPE_A
AFA11 2 TYPE_B
AFA12 1 TYPE_A
AFA12 2 TYPE_B
我正在尝试的查询是:
SELECT place,
CASE when type = 'TYPE_A' THEN stage end type_A ,
CASE when type= 'TYPE_B' THEN stage end type_B
FROM table WHERE place LIKE '%AFA%'
但它是这样返回的:
place type_A type_B
AFA11 1 null
AFA11 null 2
AFA12 1 null
AFA12 null 2
但我需要这样的回报:
place type_A type_B
AFA11 1 2
AFA12 1 2
我怎么能得到这个回报?
【问题讨论】:
【参考方案1】:你可以GROUP BY
,用case
表达式做条件聚合:
SELECT place,
MAX(CASE when type = 'TYPE_A' THEN stage end) type_A ,
MAX(CASE when type= 'TYPE_B' THEN stage end) type_B
FROM table WHERE place LIKE '%AFA%'
GROUP BY place
【讨论】:
谢谢@jarlh!!以上是关于如何在选择 oracle 中将值分组到单行的主要内容,如果未能解决你的问题,请参考以下文章
如何在Oracle sql中将行转换为按多列分组的列[关闭]