如果某个字段没有结果,则显示null

时间:2017-05-05 16:44:14

标签: sql null

我正在使用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

3 个答案:

答案 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%'