根據相同的條件,我的SQL有兩個結果字段。現在我必須寫兩遍。我想知道數據庫編譯器是否已經自動優化了代碼,或者如果我必須改變另一種方式來優化SQL?如何優化Oracle情況下的代碼情況?
select id,parent_id as p_Id,name,
(case when exists(select * from t_group t2 where t1.id=t2.parent_id)
then 2 else 1 end) type,
(case when exists(select * from t_group t2 where t1.id=t2.parent_id)
then 'true' else 'false' end) as is_Parent
from t_group t1
我試圖改變它是這樣的,但失敗了。
select id,parent_id as p_Id,name,
(case when exists(select * from t_group t2 where t1.id=t2.parent_id)
then 2 else 1 end) type,
(case when type==1
then 'true' else 'false' end) as is_Parent
from t_group t1
您是否需要爲「內聯視圖」提供名稱?你會在很多系統中使用標準SQL,但Oracle可能不會。 –
不,你不知道。但是,如果你想引用它的列並且有歧義,你會這樣做。我會更新我的答案。 –