我正在使用sql server 2008.我试图显示金额和变换的空结果,但仍显示项目名称。
我的查询是:
select project, amount, transdate
from rec
where transdate>'2017-05-01'
and project like 'project%'
当我执行此操作时,我得不到任何结果,只是空白。我希望看到的是。
project 1 | null | null
project 2 | null | null
project 3 | null | null
答案 0 :(得分:0)
您可以在检查范围的transdate和检查null之间使用OR
,如下所示:
select project,
amount,
transdate
from rec
where (
transdate is null
or transdate > '2017-05-01'
)
and project like '%out'
答案 1 :(得分:0)
您想要的并不完全清楚,但听起来您想要返回所有项目,无论它是否符合WHERE子句中的条件。您应该能够通过LEFT JOIN将表连接到自身来获得结果:
select
r1.project,
r2.amount,
r2.transdate
from rec r1
left join rec r2
on r1.project = r2.project -- I'd change this to the PK on your table
and r2.transdate > '2017-05-01'
and r2.project like '%out';
这是demo。
答案 2 :(得分:0)
select project, amount, transdate
from rec
where
(transdate>'2017-05-01' or transdate is null)
and project like 'project%'