Показать диапазон значений между двумя пользовательскими значениями ввода между двумя разными столбцами в SQL? - PullRequest
0 голосов
/ 01 января 2012

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

column1 |column2

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

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

column1 |column2

3              9
4             NULL
5              11

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

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

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

Ответы [ 2 ]

1 голос
/ 01 января 2012
SELECT DISTINCT column1, column2 
FROM table 
WHERE column1 
BETWEEN '&column1' AND (SELECT column1 FROM table WHERE column2 = '&column2') 
ORDER BY column1;
0 голосов
/ 01 января 2012

МЕЖДУ обозначает нестрогое неравенство.Если вы не хотите, чтобы в результате появлялись строки

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;
...