2011-02-28 87 views

回答

1

要定义SQL查询中的列,几乎可以使用任何返回单个值(包括select语句)的SQL操作。下面是一些例子:

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 

如果要执行的计数(*)的操作,则还可以利用HAVING子句:

select field1, count(*) 
    from mytable 
having count(*) > 3 
+0

如果我们获得超过1个值,那么这是什么方法? – itsaboutcode 2011-02-28 22:51:22

+0

@itsaboutcode查询中列的值对于任何给定行只能有一个值。如果有多个值,并且希望返回所有这些值,则可能需要使用计算的列数据执行连接。你有什么样的例子说明你在想什么? – 2011-02-28 22:57:07

相关问题