我想通过IsOpen = FALSE的最新EndDate拉出最后一条记录“
WeekID | EndDate | IsOpen | TransmitDate |
1 2015-03-14 False 2015-03-15
2 2015-03-20 False 2015-03-21
3 2015-03-26 True 2015-03-27
4 2015-04-02 True 2015-04-03
在这种情况下,我希望得到WeekID,EndDate,IsOpen,TransmitDate 但只显示具有false的LAST行而不是所有带false值的行。在这种情况下
WeekID | EndDate | IsOpen | TransmitDate |
2 2015-03-20 False 2015-03-21
我已经尝试将IsOpen的布尔值转换为整数,但我的逻辑是如何让它显示我需要的东西。
SELECT WeekID, EndDate, IsOpen, TransmitDate FROM dbo.Weeks WHERE IsOpen = (SELECT max(cast(IsOpen as int)) FROM dbo.Weeks)
从我到目前为止所尝试的,这只会返回所有True值。
谢谢。
答案 0 :(得分:1)
top 1
与order by
组合将返回最后一行
SELECT top 1 WeekID, EndDate, [Open], TransmitDate
FROM dbo.Weeks
WHERE [Open] = 0
order by EndDate desc
答案 1 :(得分:-1)
SQL Server中没有布尔类型。您希望将列与true / false比较为varchar'true'或'false'