从查询派生的Oracle 11g虚拟列

时间:2013-08-01 22:44:16

标签: sql oracle database-design oracle11g virtual-column

是否可以根据对另一个表的查询创建虚拟列? - 类似于以下内容

DateTable               
DateDt   StatusCd           
7/31     
8/1      CURRENT
8/2      
8/5
8/6
8/7 

OtherTable
Column1
Column2
VIRTUALDate = Select DateDt from DateTable where DateTable.StatusCd = 'CURRENT'

如果需要,我可以在示例中更深入地了解

1 个答案:

答案 0 :(得分:2)

不,这是不可能的。

来自the documentation

  

AS子句中的column_expression具有以下限制:

     
      
  • 它不能按名称引用另一个虚拟列。

  •   
  • 必须在同一个表中定义column_expression中引用的任何列。

  •   
  • 它可以引用确定性的用户定义函数,但如果是,则不能将虚拟列用作分区键   列。

  •   

所以它不能引用另一个表;而且你不能拥有一个在另一个表上查找的函数,因为这不是确定性的。

您可以使用视图来达到您正在寻找的效果。