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

एसक्यूएल डायनेमिक एएससी और डीईएससी

आप संख्यात्मक या डेटा मानों में हेरफेर करके @TonyAndrews जैसे समाधान कर सकते हैं। VARCHAR2 . के लिए डायनेमिक SQL का एक विकल्प दो भाव हो सकता है:

order by
   case when :sorting='ASC' then col1 end ASC,
   case when :sorting='DESC' then col1 end DESC

जब :sorting 'ASC' . का मान है उस ORDER BY . का परिणाम जैसे हो जाता है:

order by
   col1 ASC,
   NULL DESC

जब :sorting इसका मान 'DESC' . है उस ORDER BY . का परिणाम जैसे हो जाता है:

order by
   NULL ASC,
   col1 DESC

इस पद्धति का एक नकारात्मक पहलू यह है कि वे मामले जहां ऑप्टिमाइज़र SORT ऑपरेशन को छोड़ सकता है क्योंकि इसमें एक इंडेक्स शामिल होता है जो डेटा को पहले से ही वांछित की तरह सॉर्ट करता है, ऐसा तब नहीं होगा जब इस तरह CASE विधि का उपयोग किया जाए। यह एक सॉर्टिंग ऑपरेशन को अनिवार्य करेगा चाहे कुछ भी हो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गतिशील एसक्यूएल क्वेरी परिणाम प्राप्त करने के लिए plsql ब्लॉक

  2. Symfony2 (सिद्धांत) में Oracle डेटाबेस त्रुटि। क्या पैरामीटर.yml सेटअप सही है?

  3. JDBC में लंबे समय तक चलने वाली क्वेरी को रोकें या समाप्त करें

  4. सेट बीजगणित का उपयोग करके कथन का चयन करें

  5. Oracle में DBMS_OUTPUT पैकेज के बारे में जानें