【问题标题】:How to findout a number between two column in SQL Server 2008如何在 SQL Server 2008 中找出两列之间的数字
【发布时间】:2020-08-06 07:22:31
【问题描述】:

假设我有一个名为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 之间。

注意:我没有任何其他表可以加入。

我已经尝试过这个 SQL,但它是 bot 工作:

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 ))  

【问题讨论】:

  • where seasrched_number between from and to。也许添加or searchednumber is null
  • 这不只是一个 between,还是一个 >=from 和
  • @@dnoeth 谢谢你先生......

标签: sql sql-server sql-server-2008


【解决方案1】:
SELECT * 
FROM dbo.tbl_Search 
WHERE ISNULL(@number, 0) BETWEEN FROM AND TO

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这似乎是最简单的答案。
    【解决方案3】:

    根据您的问题,这应该是简单的数字比较。

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

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      相关资源
      最近更新 更多