2012-07-17 108 views
0

我的列是一個子查詢的結果,我想分配一個列別名字段是從另一個查詢中提取的,但我不能。Oracle 10g - 來自查詢的別名列

攜帶例如不工作:

SELECT field1, 
     field2, 
       (SELECT FROM mytable WHERE COND1 aa) as [SELECT name FROM MyTable WHERE cond2] 
    FROM table1 

這可能嗎? 謝謝

+3

不可能直到您使用動態SQL – Madhivanan 2012-07-17 13:16:35

+3

作爲建議的@Madhivanan,你可以使用動態SQL,但我會問你爲什麼要做到這一點,也許你可以實現你以不同的方式所需要的功能。 – Ollie 2012-07-17 15:02:41

+1

並且根據'cond2'是否比較'myTable'和'table1'(基於行的)之間的東西,這對於動態SQL來說也是不可能的。 – 2012-07-17 15:49:06

回答

0

在某些情況下(不包括X-Zero提到的ons),您可以使用多個查詢和動態SQL來實現。

DECLARE 
    v_alias VARCHAR2(30); 
    v_query_alias VARCHAR2(1000); 
BEGIN 
    SELECT name 
    INTO v_alias 
    FROM MyTable 
    WHERE cond2; 

    EXECUTE IMMEDIATE 'SELECT field1 
          ,field2 
          ,(SELECT FROM mytable WHERE COND1 aa) as '||v_alias||' 
        FROM table1'; 
END; 
/