可查询列的SQL查询

时间:2016-06-16 08:48:33

标签: sql

我有以下SQL

select * 
from posts 
where expiry_date is > GETDATE()

expiry_date是一个可以为空的datetime列。基本上我想要检索所有尚未过期的帖子,以及expiry_date为空的所有帖子。

我如何实现这一目标?我需要OR条件吗?

3 个答案:

答案 0 :(得分:2)

下面是SQL Server:

  

我需要OR条件吗?

答案:是的

你还有一个语法错误,我修复了:

select * from posts where expiry_date > GETDATE() OR expiry_date IS NULL

答案 1 :(得分:1)

某些版本的SQL具有NULL安全运算符。然而,最通用的方法是明确的测试:

select p.*
from posts p
where p.expiry_date > GETDATE() pr p.expiry_date is null;

您也可以使用coalesce()

执行此操作
select p.*
from posts p
where coalesce(p.expiry_date, getdate() + 1) > GETDATE() ;

答案 2 :(得分:0)

SELECT * FROM posts WHERE expiry_date > GETDATE() OR expiry_date is NULL

在SQL Server上。

相关问题