2017-01-05 6 views
3

SQL Serverのストアドプロシージャに複数の変数を設定する必要があります。 現在、私は個々のSELECTステートメントを使用して各変数を設定しています。より良い/より効率的なやり方があるかどうかは分かりません。 これは2つの変数のサンプルですが、合計8つの変数があります。SELECTステートメントで1つの列に複数の変数を設定する

DECLARE @source nvarchar(250) 
DECLARE @target nvarchar(250) 

SET @source = (SELECT Value FROM ApplicationSetting WHERE Key = 'Source') 
SET @target = (SELECT Value FROM ApplicationSetting WHERE Key = 'Target') 

現在、私は8つの個別のselect文を使用して各変数を設定しています。 これは、この多くの変数を設定する最も効率的な方法ですか?単一select

答えて

3

我々はこのよう

DECLARE @source NVARCHAR(250) 
DECLARE @target NVARCHAR(250) 

SELECT @source = Max(CASE WHEN KEY = 'Source' THEN Value END), 
     @target = Max(CASE WHEN KEY = 'Target' THEN Value END) 
FROM ApplicationSetting 
WHERE KEY IN('Source', 'Target') 
+0

パーフェクトを試してみて、条件付き集計

を使用して、両方の変数を割り当てることができます!私は 'CASE'を使う方法を理解できませんでした...' MAX 'を追加することがチケットでした。ありがとう! –

関連する問題