次のようなクエリがあります。
SELECT  LossCost, CoverageID                
FROM BGILossCost] 
WHERE CoverageID IN (1, 2) AND
      StateID = @StateID AND
      ConstructionID = @ConstructionID AND
      PropertyClassCodeID = @PropertyClassCodeID AND
      (BGIDistrictID = @BGIDistrictID OR BGIDistrictID IS NULL)           
そして、正しい次のデータを返します。
LossCost                                CoverageID
--------------------------------------- -----------
0.012                                   1
0.034                                   2
しかし、私がやりたいのは、CoverageIDの値に応じて2つの変数を設定することです
これが疑似コードです:
SELECT  @Var1 = CASE CoverageID = 1 THEN LossCost END,
  @Var2 = CASE CoverageID = 2 THEN LossCost END             
FROM BGILossCost] 
WHERE CoverageID IN (1, 2) AND
      StateID = @StateID AND
      ConstructionID = @ConstructionID AND
      PropertyClassCodeID = @PropertyClassCodeID AND
      (BGIDistrictID = @BGIDistrictID OR BGIDistrictID IS NULL) 
私はいつでも以下を行うことができましたが、パフォーマンス上の理由から同じテーブルに2回参加する必要がないことを望んでいました
SELECT  @Var1 = LossCost                    
FROM BGILossCost] 
WHERE CoverageID = 1 AND
      StateID = @StateID AND
      ConstructionID = @ConstructionID AND
      PropertyClassCodeID = @PropertyClassCodeID AND
      (BGIDistrictID = @BGIDistrictID OR BGIDistrictID IS NULL) 
SELECT  @Var2 = LossCost                    
FROM BGILossCost] 
WHERE CoverageID = 2 AND
      StateID = @StateID AND
      ConstructionID = @ConstructionID AND
      PropertyClassCodeID = @PropertyClassCodeID AND
      (BGIDistrictID = @BGIDistrictID OR BGIDistrictID IS NULL) 
どんな提案も役に立ちます。