sql для запроса цикла к обычному запросу

#sql #database #for-loop #plsqldeveloper

#sql #База данных #для цикла #plsqldeveloper

Вопрос:

У меня есть запрос цикла for, и я пытаюсь изменить его без зацикливания и пытаюсь проверить одну запись без зацикливания.

итак, я ищу обычный запрос без цикла.

 <query name="validate2">
    <![CDATA[
    begin
        for rec in (
            select staging.profileId as sfId                    
            from staging_pricematch_adj staging
                left outer join client cl
                    on staging.profileId = cl.salesforce_Id
            where staging.rejectcode is null
                and cl.salesforce_Id is null
        ) loop
            update staging_pricematch_adj
            set rejectcode        = '002',
            rejectReason = 'INVALID_PROFILE_ID'
            where profileId = rec.sfId;             
        end loop;
    end;
    ]]>
</query>
  

я ищу запрос noraml без условий цикла.

Ответ №1:

Упрощенно это будет работать:

       update staging_pricematch_adj
      set rejectcode        = '002',
      rejectReason = 'INVALID_PROFILE_ID'
      where profileId IN (

        select staging.profileId                    
        from staging_pricematch_adj staging
            left outer join client cl
                on staging.profileId = cl.salesforce_Id
        where staging.rejectcode is null
            and cl.salesforce_Id is null

      )