Sql Server复杂连接中的空值

时间:2014-02-22 14:08:12

标签: sql-server

我有五张桌子,我把左边的连接放在其中。我希望将null值替换为今天的日期。我怎样才能做到这一点?我的查询如下。所有表格只有两列ordernumberorderdate

select * from table1 left join table2 left join table3 left join table4 left join table5

1 个答案:

答案 0 :(得分:0)

您可以使用ISNULL(或COALESCE)和CURRENT_TIMESTAMP的组合默认为今天,CONVERT(或CAST)组合得到日期部分。我假设2008年或之后。

select 
   CONVERT(DATE, ISNULL(table1.orderdate, CURRENT_TIMESTAMP)) as t1OrderDate,
   CONVERT(DATE, ISNULL(table2.orderdate, CURRENT_TIMESTAMP)) as t2OrderDate,
   -- etc
from table1 
  left join table2 
    on table1.ordernumber = table2.ordernumber 
       -- Same for the joins to table3, table4 and table5