Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana kueri ini dapat ditingkatkan?

gunakan agregat alih-alih subkueri:

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

Saya tidak tahu RDBMS mana yang Anda gunakan, jadi case when konstruksi mungkin harus dimodifikasi ke dialek lokal Anda. Yang ini harus valid untuk MSSQL

PEMBARUAN:Kacamata saya tidak berfungsi dengan baik sehingga saya tidak melihat tag ORACLE. Memalukan...



  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-04061:status badan paket PACKAGE.NAME yang ada telah dibatalkan tetap ada

  2. Dokumentasi MAA untuk Oracle Cloud

  3. Instal Oracle Database Client Langkah demi Langkah

  4. Kesalahan Oracle saat memulai operasi startup/shutdown lain dari instance ini sedang berlangsung

  5. Membuat Pemicu yang berjalan di dua tabel