【发布时间】:2021-01-12 14:41:53
【问题描述】:
我在 MsSQL 中有这个查询
SELECT PersonnelID, Name, EmpStartCalc,
MAX(PositionDetailsValidFromCalc) PD ,
Max(PositionHierValidFromCalc) PH,
Max(PWAValidFromCalc) Position,
Max(RowId) As RowId
FROM TV_IAMintegration_VW
where
EmpStartCalc >= 20200101 and
EmpStartCalc <= 20200131 and
((20200131 > PositionDetailsValidFromCalc And
20200101 < PositionDetailsValidToCalc) or
PositionDetailsValidToCalc is null)
GROUP BY PersonnelID, Name, EmpStartCalc
ORDER BY PersonnelID Asc.
我有一个场景需要查询返回 Null,例如:
当 where 子句没有成功满足时,我需要查询在以下列中返回 null
MAX(PositionDetailsValidFromCalc) PD , Max(PositionHierValidFromCalc) PH, Max(PWAValidFromCalc) Position
但该行的其余部分保持不变。
【问题讨论】:
-
另一篇文章中的答案是低效的。我对条件聚合有更好的答案,请重新打开。这里的问题也比那里清楚得多
-
完全同意,这个问题与提到的重复问题不同。
-
如果您编辑帖子以解释这一点,您可能会重新打开它
-
已经做了,等待版主采取行动。
标签: sql sql-server null case where-clause