SQL函数将记录分成两个记录。

时间:2018-04-27 09:21:38

标签: mysql sql postgresql

我在Table1中创建了日期和解决日期。这两个字段都包含在一条记录中。

ID                created_date                resolved_at
'1xxxx'           '18-04-2018'               '20-04-2018'

我是否可以使用自定义SQL函数将它们分成2条记录。

我想以某种方式输出这样的结果。

ID           date                Operation
1xxx.       18-04-2018.          Created
1xxx.       20-04-2018.          Resolved

2 个答案:

答案 0 :(得分:5)

SELECT ID,created_date DATE,CASE WHEN CREATED_DATE IS NOT NULL THEN 'Created' end OPERATION FROM TABLE1
UNION
SELECT ID,resolved_at DATE,CASE WHEN resolved_at IS NOT NULL THEN 'Resolved' end OPERATION FROM TABLE1

您只需使用 CASE WHEN ,根据哪个列不为空,我们会将该名称设为 OPERATION

您可以查看SQL fiddle here

尝试以上查询。

它会帮助你。

答案 1 :(得分:2)

更简单的解决方案是:

select id, created_date, 'created' as operation from t
union all
select id, resolved_at, 'resolved' as operation from t;