gpt4 book ai didi

多列的 Sql Between 子句

转载 作者:行者123 更新时间:2023-12-04 18:21:19 24 4
gpt4 key购买 nike

我尝试通过使用 Between 子句来实现查询,但这存在一些问题

S_E1 的第一个查询:

这个查询返回我需要的确切数据,这里的数据计数是 43。

select RECORD_TIMESTAMP as DateRecorded, ROUND (S_E1 ,2 )as S_E1
from TBL_SENSORS
Where RECORD_TIMESTAMP Between '4/28/2012 12 :00 AM'
and '5/17/2012 12 :00 AM'
And ( S_E1 Between 10 And 100 )

S_E2 的第二个查询:

这个查询返回我需要的确切数据,这里的数据计数是 68。
select RECORD_TIMESTAMP as DateRecorded, ROUND (S_E2 ,2 )as S_E2
from TBL_SENSORS
Where RECORD_TIMESTAMP Between '4/28/2012 12 :00 AM'
and '5/17/2012 12 :00 AM'
And ( S_E2 Between 10 And 100 )

问题:

但是当我将这些查询组合到一个查询中时,它会给出错误的数据。它给了我 73 行。我认为它应该给 111 行
select RECORD_TIMESTAMP as DateRecorded, 
ROUND (S_E2 ,2 )as S_E2,
ROUND (S_E1 ,2 ) as S_E1
from TBL_SENSORS
Where RECORD_TIMESTAMP Between '4/28/2012 12 :00 AM'
and '5/17/2012 12 :00 AM'
And ( S_E2 Between 10 And 100)
and (S_E1 Between 10 And 100 )

请给我一些想法我在这里错了..

最佳答案

使用OR而不是 AND运营商

SELECT RECORD_TIMESTAMP AS DateRecorded, 
Round (S_E2, 2) AS S_E2,
Round (S_E1, 2) AS S_E1
FROM TBL_SENSORS
WHERE RECORD_TIMESTAMP BETWEEN '4/28/2012 12 :00 AM' AND '5/17/2012 12 :00 AM'
or ( S_E2 BETWEEN 10 AND 100 )
or ( S_E1 BETWEEN 10 AND 100 )

在查询中,不保证会得到 111 条记录,因为两个条件可能有共同的记录。

条件 1 - ( S_E2 BETWEEN 10 AND 100 )
条件 2 - ( S_E1 BETWEEN 10 AND 100 )
或者

在两个查询中使用 Union All 来获取所有记录 (111)。
select RECORD_TIMESTAMP as DateRecorded, ROUND (S_E1 ,2 )as S_E1, 0 as S_E2
from TBL_SENSORS
Where RECORD_TIMESTAMP Between '4/28/2012 12 :00 AM' and '5/17/2012 12 :00 AM'
And ( S_E1 Between 10 And 100 )

UNION ALL

select RECORD_TIMESTAMP as DateRecorded, 0 as S_E1, ROUND (S_E2 ,2 ) as S_E2
from TBL_SENSORS
Where RECORD_TIMESTAMP Between '4/28/2012 12 :00 AM'
and '5/17/2012 12 :00 AM'
And ( S_E2 Between 10 And 100 )

关于多列的 Sql Between 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10633499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com