gpt4 book ai didi

sql - 从 SQL Server 中的一系列行中选择一行

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

我遇到了一个非常有趣的问题..实际上很迷失。假设我有一个包含值范围的表,例如:

id.........From........To
1..........0...........5
2..........6...........10
3..........11...........15
4..........16...........29

现在我有一个整数 @MyInt = 8,我想选择该整数所在的单行。在本例中,8 介于 6 和 10 之间,因此应该选择行 id=2

我显然做不到

select * from table where From < @MyInt AND To >= @MyInt

因为它将选择所有行,因为所有数字都会更小和/或更大..

那么在这种情况下如何选择单行呢?

非常感谢!

最佳答案

使用:

SELECT t.*
FROM TABLE t
WHERE @MyInt BETWEEN t.[from] AND t.to

...有效,因为需要满足每行基础两个条件才能返回行 - 它相当于:

SELECT t.*
FROM TABLE t
WHERE @MyInt <= t.to
AND @MyInt >= t.[from]

...这很好,因为这些值是独占集。 BETWEEN 是 ANSI 标准,并且始终包含在内 - Oracle、SQL Server、MySQL、PostgreSQL、SQLite 都将返回相同的数据(假设类似的数据类型)。

如果您使用过:

AND @MyInt > t.[from]

...您永远不会捕获变量与 from 值相同的行(即:0、6、11、16)。

关于sql - 从 SQL Server 中的一系列行中选择一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3470472/

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