我有一个表,其中所有记录都有id,timestamp和布尔值。我需要发现布尔值在1秒内对哪个记录的变化为false,对于相同的id是真的。
我一直在研究以下声明,但在做了一些研究之后,我觉得CASE结合FETCH声明可能会更好,但我没有找到一个很好的例子,它们被一起使用。
SELECT *
FROM Table_1
WHERE timestamp IN(
SELECT DATEADD(Second, 1, timestamp)
from Table_1
where Boolean = 1)
AND ID in (
SELECT ID
from Table_1 where Boolean = 1)
AND Boolean = 0
答案 0 :(得分:1)
怎么样:
Select Distinct
t1.id
From
Table_1 t1
Inner Join
Table_1 t2
On
t1.Id = t2.Id And
t1.Boolean = True And
t2.Boolean = False And
DateDiff(Second, t1.Timestamp, t2.Timestamp) Between 0 And 1
关于你在join子句中加入了多少以及你在where子句中加入了多少的味道。
编辑