използвайте агрегат вместо подзаявки:
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
АКТУАЛИЗАЦИЯ:Очилата ми не работят правилно и затова не забелязах етикета ORACLE. Смущаващо...