Как заменить конкретное значение переменной в Oracle SQL? У меня
select 5, min(id) from my_table where id > 5 --AND ..
UNION ALL
select 6, min(id) from my_table where id > 6 --AND ..
UNION ALL
....
| 5 | 6 |
| 6 | 8 |
...
Как обернуть это в функцию, выполняющую псевдокод ниже?
for ( $i in ( select id from my_table)){
UNION ALL
select $i, min(id) from my_table where id > $i
}
Редактировать: чтобы прояснить ситуацию, я ищу общий метод, позволяющий превратить выбор с жестко заданными значениями в функцию, которая принимает переменные. Обратите внимание на --AND
часть.
Edit2:
Позвольте мне перевести это на Java.
Вопрос: у меня есть код
System.out.println(1+2+" = 1+2"+ " ");
, который возвращает сумму двух чисел. Как заменить бетон 1 + 2 на любые a
и b
?
Ответ:
Вам нужно определить
int getSum(int a, int b){ return a+b;}
Теперь вы можете написать
for(int a : setA){
for(int b : setB){
System.out.println(" " +a+"+"+b+" = "+ getSum(a,b)+" ");
}}
Таким образом, вы можете перебирать все элементы setA
и все элементы setB
вместо предоставления конкретных значений 1 и 2.
У меня точно такой же вопрос для SQL. Если у меня есть запрос, который возвращает результат для конкретного значения (пример Java: 1
, 2
; пример SQL: where id > 6
) - как изменить его так, чтобы SQL перебрал все возможные значения (полученные из select id из группы т по id)?