Как избежать множественной проверки флага одной и той же таблицы Tsql

#performance #tsql

Вопрос:

Здесь проверка кода установите флаг в той же таблице, есть ли способ избежать этого, и любой простой запрос может дать любезный совет

 IF  @Client_Type ='R'       
BEGIN      
SELECT @Auth_t=1  FROM GM_RETAILER WHERE  Retailerid =@Client_id      
    
SELECT @Auth=1  FROM GM_RETAILER WHERE isnull(First_trans_Date,'')= ''   and Retailerid =@Client_id   
            
END  
 

Комментарии:

1. объедините в один запрос и используйте CASE выражение для проверки First_trans_Date и назначения @Auth соответствующим образом

2. как и в этом запросе, ВЫБЕРИТЕ @Auth_t=1, @Auth=СЛУЧАЙ, КОГДА isnull(First_trans_Date,»)= «, ЗАТЕМ 1 ЕЩЕ 0 ЗАКАНЧИВАЕТСЯ С GM_RETAILER, ГДЕ Retailerid =@Client_id

3. протестируйте его, чтобы убедиться, что он работает для вас