繁体   English   中英

2列具有相同ID的1行

[英]2 column with same ID to 1 row

我有一个只有2列的表,如下

|ID  | Date       |
===================
|1   | 03/04/2017 |
|1   | 09/07/1997 |
|2   | 04/04/2014 |

我想取得最终结果如下

|ID  | Date 1     |Date 2      |
================================
|1   | 03/04/2017 | 09/07/1997 |
|2   | 04/04/2014 | NULL       |

我目前正在阅读PIVOT功能,但不确定自己是否走对了。 还是SQL新手

一个简单的透视查询应该可以在这里工作,但要有所不同。 对于您的ID 2数据,只有一行,但是在这种情况下,您要报告第一个日期和NULL第二个日期。 我们可以使用CASE表达式来处理这种情况。

SELECT
    ID,
    MAX(Date) AS date_1,
    CASE WHEN COUNT(*) = 2 THEN MIN(Date) ELSE NULL END AS date_2
FROM yourTable
GROUP BY ID

输出:

在此处输入图片说明

演示在这里:

右旋酯

使用min/max聚合函数可以轻松完成此操作

select Id,min(Date),
        case when min(Date)<>max(Date) then max(Date) end
From yourtable 
Group by Id

如果这样做对您的原始数据无济于事,请更改样本数据和预期结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM