如何找出 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
假设我有 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