Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

इस क्वेरी को कैसे सुधारा जा सकता है?

उपश्रेणियों के बजाय समुच्चय का उपयोग करें:

select distinct controlid, 
  max (case when a=3 and b=13 and c=0 and d= 0 then OrderNo end) as colA,
  max (case when a=2                           then OrderNo end) as colB,
  max (case when a=1 and b=14 and e=1          then OrderNo end) as colC,
  max (case when a=3 and b=13 and e=1 and c=0 and d=0 then OrderNo end) as colD,
  max (case when OrderNo=#param2# then a end) as colE
from my_table
where controlid = #param1#
group by controlid

मैं नहीं जानता कि आप किस RDBMS का उपयोग करते हैं, इसलिए case when निर्माण को आपकी स्थानीय बोली में संशोधित करना पड़ सकता है। यह MSSQL के लिए मान्य होना चाहिए

अद्यतन:मेरा चश्मा ठीक से काम नहीं करता है और इसलिए मैंने ओरेकल टैग को नोटिस नहीं किया। शर्मनाक...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01882:समय क्षेत्र क्षेत्र नहीं मिला

  2. HQL क्वेरी में NULL की जाँच कैसे करें या मान्य नहीं है?

  3. लेन-देन के दायरे और पूछताछ का उपयोग करना

  4. पीएल/एसक्यूएल संग्रह में तत्व की अनुक्रमणिका प्राप्त करना

  5. PHP का उपयोग करके ऑरैकल डेटाबेस से डेटा कैसे प्राप्त करें