sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kunne denne forespørgsel forbedres?

brug et aggregat i stedet for underforespørgsler:

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

Jeg ved ikke, hvilket RDBMS du bruger, så case when konstruktion skal muligvis ændres til din lokale dialekt. Denne burde være gyldig til MSSQL

OPDATERING:Mine briller fungerer ikke ordentligt, så jeg lagde ikke mærke til ORACLE-mærket. Pinligt...



  1. SQLDeveloper viser ingen tabeller under forbindelser, hvor der står tabeller

  2. Håndtering af samtidige opdateringer i dvale

  3. "Falal intern forbindelsesfejl" ved udførelse af en indbygget kompileret lagret procedure i SQL Server 2019 (kendt fejl)

  4. Tilføjelse af et statisk præfiks på et stigende tal