私はこのように構成されているテーブルを持っている:SQL値を選択
|ROWID |COUNTRY|PRICE|
|1 |US |15|
|1 |UK |10|
|1 |EU |12|
私は、ストアドプロシージャ全体で使用するための変数に複数の行から値を選択する必要があり、
DECLARE @USprice int,@UKprice int
SELECT @USprice = T.Price FROM Table T WHERE T.Country = 'US'
SELECT @UKprice = T.Price FROM Table T WHERE T.Country = 'UK'
この選択を実行する最も早い方法は何ですか?実際には、約12行を取得する必要がありますので、パフォーマンスに懸念があります。
これを行う方が良いでしょう:私はここに
効率的ではない変数ごとに個別のテーブルヒットを必要とする最初のアプローチで行くことはありません
DECLARE @USprice int,@UKprice int
SELECT @USprice = CASE WHEN T.Country = 'US' THEN T.Price ELSE @USprice END
,@UKprice = CASE WHEN T.Country = 'UK' THEN T.Price ELSE @UKprice END
FROM Table T WHERE T.Country IN ('US','UK')
に複製されません考えると? (そのコードはANSI SQLのようには見えません) – jarlh
T-SQL(MS-SQL-Server)のように見えます – MatBailie
どちらの方法も使えますが、価格が複数返った場合は、変数に最後の値を代入します変数を代入するのではなく、このテーブルに加わることができます。 – TheGameiswar