Отображать диапазон значений между двумя пользовательскими входными значениями между двумя разными столбцами в SQL?

Например: имя таблицы = таблица

столбец1 | столбец2

1              7
2              8
3              9
4             NULL
5              11
6              12

Пользователя просят ввести два значения, одно из столбца 1 и одно из столбца 2. Допустим, пользователь вводит 2 и 12. Результат должен выглядеть примерно так.

столбец1 | столбец2

3              9
4             NULL
5              11

Я попытался использовать этот код ниже, но я не уверен, что он работает правильно. Плюс нулевые значения не отображаются, так что это тоже проблема. Кроме того, фактические значения содержат как числовые, так и строковые значения.

SELECT DISTINCT column1, column2 
FROM table 
WHERE column1 
BETWEEN '&column1' AND column1 
AND column2 NOT BETWEEN '&column2 AND column2 
ORDER BY column1;

Спасибо за ответ


person NLimbu    schedule 01.01.2012    source источник


Ответы (1)


BETWEEN обозначает нестрогое неравенство. Если вам не нужны строки

2 8
6 12

чтобы появиться в результате, вам нужно будет написать

SELECT DISTINCT column1, column2
FROM table
WHERE (column1 > '&column1' or column1 is null) 
  AND (column2 < '&column2' or column2 is null)
ORDER BY column1;
person Arenielle    schedule 01.01.2012
comment
Спасибо за информацию. Но то, что я искал, было отображать строки в зависимости от обоих входных значений вместе. ответ выше был идеальным. - person NLimbu; 02.01.2012