2009-11-17 2 views
14

मैं * चुनना चाहता हूं, और सभी व्यक्तिगत कॉलम टाइप नहीं करना है, लेकिन मैं केस स्टेटमेंट के साथ एक कस्टम कॉलम भी शामिल करना चाहता हूं।आप सभी कॉलम का चयन कैसे करते हैं, साथ ही ओरेकल 11 जी में केस स्टेटमेंट का परिणाम कैसे चुनते हैं?

select *, (case when PRI_VAL = 1 then 'High' 
       when PRI_VAL = 2 then 'Med' 
       when PRI_VAL = 3 then 'Low' 
      end) as PRIORITY 
from MYTABLE; 

लेकिन यह शिकायत है कि

ORA-00923: FROM keyword not found where expected 

उत्तर

28

इस तरह mytable के लिए एक उपनाम जोड़ें:

select t.*, (case when PRI_VAL = 1 then 'High' 
       when PRI_VAL = 2 then 'Med' 
       when PRI_VAL = 3 then 'Low' 
      end) as PRIORITY 
from MYTABLE t; 

यह किसी भी विशिष्ट Oracle संस्करण पर निर्भर नहीं है, नहीं मैं निम्नलिखित की कोशिश की अन्य डेटाबेस के बारे में निश्चित है।

+0

धन्यवाद

एक अलग टिप्पणी पर जागरूक एक आसान खोजा मामले वाक्य रचना कि अपनी स्थिति के लिए उपयुक्त होगा है कि वहाँ हो! ठीक है मुझे लगता है कि मैंने अपनी समस्या को बढ़ा दिया है। क्या होगा यदि कॉलम शामिल होने का नतीजा है, यानी ... चुनें ... मिस्बल एम से एक और एमआईडी = एआईडी में शामिल हों? –

+0

कभी नहीं, मुझे अभी इस प्रश्न में शामिल होने का जवाब मिला है। यह एम * *, ए *, (केस ... का चयन करें फिर से धन्यवाद! –

5

जैसा कि आयरनगोफी कहते हैं, तालिका उपनाम जोड़ें।

select t.*, 
     case PRI_VAL 
     when 1 then 'High' 
     when 2 then 'Med' 
     when 3 then 'Low' 
     end as PRIORITY 
from MYTABLE t; 
-2

इसे इस तरह कार्य करें::

select e.*, 
case deptno 
when 30 then 'High' 
when 20 then 'Medi' 
when 10 then 'Low' 
else 'Very Low' 
end case 
from emp e order by deptno desc; 
संबंधित मुद्दे