gpt4 book ai didi

sql-server - 如何从两列中按值获取行限制

转载 作者:行者123 更新时间:2023-12-04 00:33:58 25 4
gpt4 key购买 nike

请指教如何组合查询,找到第一个出现的行

我有 table

Date        Counter
01.01.2005 208,5
02.01.2005 209,5 <----- start
03.01.2005 210,5
04.01.2005 211,5
08.01.2005 16,5
09.01.2005 17,2
10.01.2005 18,8 <------ correct
11.01.2005 19,7
12.01.2005 20,7
13.01.2005 21
14.01.2005 116,3
15.01.2005 120,4
16.01.2005 135,2
17.01.2005 1,1
18.01.2005 10,3
19.01.2005 18,7 <------ wrong
20.01.2005 14,2
21.01.2005 8,5
22.01.2005 7,1

我需要通过计数器 18.5(从 2005 年 1 月 2 日开始)提取日期,因为该值不在表中,可能会取下一个更高的值。

我尝试使用开始日期(因为表格有千个日期和 0-499 之间的计数器)和值限制(大于或等于)进行搜索。

select top 1 Date from Tabel1 where  Date > 02.01.2005 AND Counter >= 18.5

此查询返回错误结果 - 日期 03.01.2005,但正确的必须是 10.01.2005。希望得到任何帮助。提前致谢。

(我使用的是:sql 2008 r)。

最佳答案

使用TOP 时,您需要放置一个ORDER BY 子句。在这种情况下,您希望获得最低的 Counter:

SELECT TOP 1 * 
FROM tbl
WHERE
Date > CAST('20050102' AS DATE)
AND Counter >= 18.5
ORDER BY Counter

请注意,如果没有 ORDER BY,则不能保证 TOP 1 的结果始终相同。

关于sql-server - 如何从两列中按值获取行限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36297456/

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