首页 > 解决方案 > 排除日期为星期日且单元格值为零或空的行(在 SQL Server 中)

问题描述

在 T-SQL 查询方面需要帮助。

如何在 SQL Server 中排除日期为星期日且单元格值为零或 null 的行。

排除周日是此链接之类的解决方案的一种条件

现在我需要应用第二个条件 - 如果单元格值为零或空,则仅排除星期日。

标签: sql-serversql-server-2008

解决方案


您的问题非常模糊,您绝对应该考虑将来阅读这些页面:

我如何提出一个好问题?

如何创建一个最小的、可重现的示例

但是,这是一个我认为可以回答您的问题的示例:

declare @sampleData table
(
    DateValue date,
    cell int
)

insert into @sampleData values
('2021-11-03',1),
('2021-11-04',2),
('2021-11-05',0),
('2021-11-06',4),
('2021-11-07',null),
('2021-11-08',0),
('2021-11-09',2),
('2021-11-10',2),
('2021-11-13',null),
('2021-11-13',0)

select *
from @sampleData
where datepart(dw,DateValue) <> 7
or isnull(cell,0) <> 0

这仅排除“单元格”列包含零或NULL值的星期日。如您所见,11 月 6 日星期日被包括在内,因为单元格值为 4,而 11 月 7 日/8 日的条目被包括在内,因为虽然它们的单元格值为 0 和NULL,但它们不是星期日。仅排除 11 月 13 日星期日的条目,因为它们是星期日,并且单元格值为 0 或NULL


推荐阅读