如何找出 SQL Server 2008 中两列之间的数字

How to findout a number between two column in SQL Server 2008

假设我有 table 调用 dbo.tbl_Search

Id    From    To
-------------------
1     200     210
2     212     220
3     203     215
4     225     240

假设,我搜索 No.-205 然后我想要这样的结果

Id    From    To
-------------------
1     200     210
3     203     215

因为205 No.介于这两个id之间。

注意:我没有其他人table加入这个。

我试过这个 SQL 但它的机器人工作:

SELECT * 
FROM dbo.tbl_Search 
WHERE 
    (ISNULL(From, 0) = (CASE WHEN ISNULL(205, 0) = 0 
                                THEN ISNULL(From, 0) 
                                ELSE ISNULL(205, 0) 
                        END ) 
    OR ISNULL(To, 0) = (CASE WHEN ISNULL(205, 0) = 0 
                                THEN ISNULL(To, 0) 
                                ELSE ISNULL(205, 0) 
                        END ))  
SELECT * 
FROM dbo.tbl_Search 
WHERE ISNULL(@number, 0) BETWEEN FROM AND TO

使用 between 运算符可以找到范围之间的记录。

不确定我是否理解正确,但像下面这样的简单查询不应该起作用

SELECT * 
FROM dbo.tbl_Search 
WHERE From >= 205 AND To <= 205

按照你的问题应该是简单的数字比较。

SELECT *
FROM tbl_Search
WHERE FROM <= 205 AND TO >= 205