关于Sql Server 2005,如果此select返回null,如何将此语句与当前时间合并 -
select top 1 OrderDate as OldestOrderDate
from ordersview
ORDER BY OldestOrderDate
OrderDate的类型为datettime。
答案 0 :(得分:4)
这就是coalesce this statement
:
coalesce(
(select top 1 OrderDate as OldestOrderDate from ordersview),
getDate());
如果您只想要时间部分:
coalesce(
(select top 1 OrderDate as OldestOrderDate from ordersview),
convert(varchar(10), getdate(), 8));
这是example
但是,如果我想将OldestOrderDate和getdate转换为时间药水,我该怎么办呢? - 巴兹
在这种情况下,请尝试this。
答案 1 :(得分:2)
SELECT OldestOrderDate = MAX(COALESCE(OrderDate, GETDATE()))
FROM (SELECT OrderDate = MAX(OrderDate) FROM dbo.ordersview UNION ALL SELECT NULL);
答案 2 :(得分:-1)
尝试以下方法:
select top 1 coalesce(OrderDate, getdate()) as OldestOrderDate from ordersview
如果OrderDate不为null,则返回OrderDate,否则返回当前日期。
Coalesce返回其参数中的第一个非null值。