Как найти число между двумя столбцами в SQL Server 2008 - PullRequest
0 голосов
/ 06 августа 2020

Предположим, у меня есть таблица с именем 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. падает между этими двумя идентификаторами.

Примечание : у меня нет другой таблицы, к которой можно было бы присоединиться.

Я пробовал это 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 ))  

Ответы [ 3 ]

1 голос
/ 06 августа 2020

Не уверен, правильно ли я понимаю, но не должен ли простой запрос, как показано ниже, работать

SELECT * 
FROM dbo.tbl_Search 
WHERE From >= 205 AND To <= 205
1 голос
/ 06 августа 2020
SELECT * 
FROM dbo.tbl_Search 
WHERE ISNULL(@number, 0) BETWEEN FROM AND TO

Используя оператор between, вы можете найти записи между диапазоном.

0 голосов
/ 06 августа 2020

Это должно быть простое сравнение чисел согласно вашему вопросу.

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