Sql 如何显示不同列中具有twho条件的某些记录

Sql 如何显示不同列中具有twho条件的某些记录,sql,oracle,Sql,Oracle,我有以下代码: select to_char(sysdate -0.25,'DAY') day, t.task_id, NVL (pu.part_id, 'NONE') part_id, p.part_type, t.request_id, (select(concat(concat (p.first_name, ' '), p.last_name)) from person p where t.person_id = p.person_id) name, pu.quantity, to_nu

我有以下代码:

select
to_char(sysdate -0.25,'DAY') day,
t.task_id,
NVL (pu.part_id, 'NONE') part_id,
p.part_type,
t.request_id,
(select(concat(concat (p.first_name, ' '), p.last_name)) from person p where t.person_id = 
p.person_id) name,
pu.quantity,
to_number(pu.user_def15, '9999999.99') lunch,
to_char(cast(t.actual_start_dttm as timestamp) at time zone 'US/Eastern', 'HH24:MI') started,
to_char(cast(t.actual_end_dttm as timestamp) at time zone 'US/Eastern', 'HH24:MI') ended,
NVL(pu.user_def2, 'MISSING') description,
case when NVL(pu.user_def2, 'MISSING') = 'MISSING' then '#FF0000' else '#000000' end description_c,
t.task_status,
to_char(cast(t.plan_start_dttm as timestamp) at time zone 'US/Eastern', 'YYYY-MM-DD') start_date,
to_char (sysdate-0.25,'DD-MM-YYYY HH24:MI') today
from task t 
LEFT JOIN part_usage pu ON t.task_id = pu.task_id LEFT JOIN part p ON pu.part_id = p.part_id
where 

t.access_group = 'CAPCA'
and to_char(cast(t.plan_start_dttm as timestamp) at time zone 'US/Eastern', 'YYYY-MM-DD') =
CASE WHEN
to_char(sysdate - 0.25,'DAY') = 'MÅNDAG '
THEN
 to_char (sysdate-3.25, 'YYYY-MM-DD')
ELSE
 to_char (sysdate-1.25, 'YYYY-MM-DD')
END
order by name, started
下面是我对excel导出的结果:

在我的代码中,在第4行,我有一个NVL,如果没有记录,它会写入“NONE”,在第12行,它会写入一个“MISSING”。 问题是因为它是一个NVL,只有在没有结果的情况下才会发生。 如果找不到零件类型为“人工”的结果,我需要得到相同的结果 因此,在excel工作表图片中的本例中,第3行的零件类型为“CONS”,应显示为第2、5和15行,因为没有“人工”结果。
谢谢。

我不确定我是否完全理解了这个问题,但你可以在SELECT语句中编写
CASE WHEN pu.part\u id为NULL或p.part\u type'LABOR'然后'None'其他pu.part\u id END
或者
CASE WHEN part\u type'LABOR'然后'None'其他NVL(pu.part\u id,'None')'END
。@EdmCoff在这两种情况下,我都会得到一个答案“不兼容的字符集”。嗯,这很奇怪。您的part_type和part_id列是什么字符集?这是更大的联合查询的一部分吗?@EdmCoff运行此命令时,从v$nls_参数中选择*,其中参数“%CHARACTERSET”这样的参数我得到:参数值nls_CHARACTERSET AL32UTF8 nls_NCHAR_CHARACTERSET AL16UTF16