हाय बयान मैं बस का चयन करें और अच्छा काम करता है है:में चुनिंदा (Oracle)
select 'CARAT Issue Open' issue_comment, i.issue_id, i.issue_status, i.issue_title, i.ISSUE_summary ,i.issue_description, i.severity,
gcrs.Area_name, gcrs.sector_name,
substr(gcrs.stream_name,1,case when instr(gcrs.stream_name,' (')=0 then 100 else instr(gcrs.stream_name,' (')-1 end) ISSUE_DIVISION,
case when gcrs.STREAM_NAME like 'NON-GT%' THEN 'NON-GT' ELSE gcrs.STREAM_NAME END as ISSUE_DIVISION_2
from table(f_carat_issues_as_of('31/MAR/2013')) i
inner join v_gcrs_with_stream gcrs on i.segment_id = gcrs.segment_id
where UPPER(ISSUE_STATUS) like '%OPEN%'
अब मैं दो कॉलम कॉल करना चाहते हैं: अगर वे नए कॉलम में बराबर हैं ISSUE_DIVISION और ISSUE_DIVISION_2
चाहिए मान 1 होना चाहिए यदि बराबर नहीं हैं 0,
मैं इसे कैसे कर सकता हूं?
मेरा पूरा कोड:
select 'CARAT Issue Open' issue_comment, i.issue_id, i.issue_status, i.issue_title, i.ISSUE_summary ,i.issue_description, i.severity,
gcrs.Area_name, gcrs.sector_name,
substr(gcrs.stream_name,1,case when instr(gcrs.stream_name,' (')=0 then 100 else instr(gcrs.stream_name,' (')-1 end) ISSUE_DIVISION,
case when gcrs.STREAM_NAME like 'NON-GT%' THEN 'NON-GT' ELSE gcrs.STREAM_NAME END as ISSUE_DIVISION_2
from table(f_carat_issues_as_of('31/MAR/2013')) i
inner join v_gcrs_with_stream gcrs on i.segment_id = gcrs.segment_id
where UPPER(ISSUE_STATUS) like '%OPEN%' and
CASE WHEN ISSUE_DIVISION = ISSUE_DIVISION_2 THEN
CASE WHEN ISSUE_DIVISION is null then "Null Value found"
Else 1 End
ELSE 0 END As Issue_Division_Result
लेकिन मैं लाइन पर त्रुटि मिलती है: वरना 0 अंत Issue_Division_Result रूप
ORA-00920: अवैध संबंधपरक ऑपरेटर :(
यह GCRS.STREAM_NAME के लिए उचित मूल्यों को सही तरीके से संभाल नहीं करेगा, क्योंकि INSTR() उस मामले में पूर्ण लौटाता है। –