mam*_*esh 1 sql sql-server sql-server-2008
我有一个包含日期和NULL值的日期列表.我试图找出一种方法来找到MAX Date,per ID,或者如果有NULL值,则返回NULL.
例如:
ID Date
1 2014-01-01
1 2014-02-01
1 2014-03-01
2 2014-02-01
2 NULL
3 NULL
4 2014-03-01
Run Code Online (Sandbox Code Playgroud)
所以我想要产生的是:
1 = 2014-03-01
2 = NULL
3 = NULL
4 = 2014-03-01
Run Code Online (Sandbox Code Playgroud)
截至目前我正在使用这样的东西:
NULLIF(MAX(COALESCE(n.[SentDate], '12/16/9997')),'12/16/9997') AS [MaxSentDate]
Run Code Online (Sandbox Code Playgroud)
我99%肯定没有人会约会12/16/9997,但我想提出一个合适的解决方案,而不是使用像这样的hackish.
试试这个 :
SELECT [ID]
, CASE WHEN MAX(CASE WHEN [Date] IS NULL THEN 1 ELSE 0 END) = 0 THEN MAX([Date]) END
FROM YourTable
GROUP BY [ID]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3720 次 |
| 最近记录: |