Как я могу создать/объявить/определить производный столбец в запросе выбора, а затем использовать его в предложении where?
Как сделать производный столбец в Oracle, а затем использовать его?
Ответы (1)
Чтобы определить столбец в SQL-запросе, вы можете использовать практически любую операцию SQL, которая возвращает одно значение (включая операторы select). Вот некоторые примеры:
select 'Y' from dual;
select (5 * 3) cal_col from dual;
select (select min(col1) from table 2) calc_col from dual;
select nvl(col1, 'N') has_value from mytable;
По моему опыту, если вы хотите использовать производный столбец в запросе на выборку, вы должны определить столбец как часть внутреннего выбора. Вот пример:
select *
from (
select (col1 * col2) calc_col
from mytable
) data
where data.calc_col > 30
Другой альтернативой является использование вычисления внутри самого предложения where:
select (col1 * col2) calc_col
from mytable t
where (col1 * col2) > 30
Если вы выполняете операцию count(*), вы также можете использовать предложение HAVING:
select field1, count(*)
from mytable
having count(*) > 3
person
Kris Babic
schedule
28.02.2011
Как быть, если мы получаем в нем более 1 значения?
- person itsaboutcode; 01.03.2011
@itsaboutcode Значение столбца в запросе может иметь только одно значение для любой заданной строки. Если имеется несколько значений и вы хотите, чтобы они все были возвращены, вам может потребоваться выполнить соединение с данными вычисляемого столбца. У вас есть примеры того, что вы думаете?
- person Kris Babic; 01.03.2011