您只需在WHERE
子句中添加一个条件
SELECT DISTINCT PointPerson
FROM DailyTaskHours
WHERE ActivityDate BETWEEN @startDateParam AND @endDateParam
AND PointPerson <> ''
GROUP BY PointPerson
HAVING SUM([Hours]) > 0
ORDER BY PointPerson
这种情况有很多变化,具体取决于您的表是如何标准化的。
如果您确定您将始终有一个空格,那么您可以使用:
AND PointPerson <> ''
如果有可能有一个NULL值,那么使用它是最明智的:
AND ISNULL(PointPerson, '') <> ''
如果该字段中可能有空格(它们会显示为空白,但仍然不会被第一个选项捕获),您可以使用附加条件以及前两个的组合,这提供了最安全的选项(涵盖大多数情况):
AND ISNULL(PointPerson, '') <> ''
AND LEN(LTRIM(PointPerson)) > 0
这种条件组合将帮助您避免 NULL 值和多个空格,这些空格将通过用 修剪它们来消除LTRIM
,其结果必须至少有一个字符。