我在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
答案 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;