2011-11-03 97 views
3

在SQL Server中我用來做這樣的事情額外列添加到選擇:添加列選擇*

select *, 
     case 
     when w1.start_date < w2.start_date then 
      to_date(w2.START_date, 'DD/MM/YYYY') - 1 
     else 
     to_date(w1.end_date, 'DD/MM/YYYY') 
     end as end_date_modified 
from WEIGHTED_AVERAGE w1 

然而,繼甲骨文導致「ORA-00923 FROM關鍵字未找到預期」 :

select *, 
     case 
     when w1.start_date < w2.start_date then 
      to_date(w2.START_date, 'DD/MM/YYYY') - 1 
     else 
     to_date(w1.end_date, 'DD/MM/YYYY') 
     end end_date_modified 
from WEIGHTED_AVERAGE w1 

我搜遍了所有,但無法弄清楚如何在Oracle中實現這一點。

+0

考慮過,沒有使用*,這可能需要更多的時間達陣,但可以幫助提供更好的錯誤消息你稍後如果列更改,或者減少傳輸的數據量,則隨着表的增長。 –

回答

4

試試這個

select w1.*, 
     case 
     when w1.start_date < w2.start_date then 
      to_date(w2.START_date, 'DD/MM/YYYY') - 1 
     else 
     to_date(w1.end_date, 'DD/MM/YYYY') 
     end end_date_modified 
from WEIGHTED_AVERAGE w1 
+0

好vitorfs .... – shanmugamgsn

+0

@vitorfs - 正是我在找,謝謝。有你的第一個接受的答案:-) –

+0

耶:D多數民衆贊成在不錯!呵呵 –

1

修改你的SELECT開始到W1。*