2012-02-03 7 views
32

私はこれをしたい:1つのSELECT文に2つのスカラー変数を設定していますか?

Declare @a int; 
Declare @b int; 

SET @a,@b = (SELECT StartNum,EndNum FROM Users Where UserId = '1223') 

PRINT @a 
PRINT @b 

しかし、これは無効な構文です。 1つのselect文に複数のスカラー変数を設定するにはどうすればよいですか?私はできる:

Declare @a int; 
Declare @b int; 

SET @a = (SELECT StartNum FROM Users Where UserId = '1223') 
SET @b = (SELECT EndNum FROM Users Where UserId = '1223') 

PRINT @a 
PRINT @b 

しかし、これは2倍かかる。最速の方法は何ですか?

答えて

68
DECLARE @a int; 
DECLARE @b int; 

SELECT @a = StartNum, @b = EndNum 
FROM Users 
WHERE UserId = '1223' 
+0

ニース、ありがとう。私はSQLの構文を調べるのに困っています。さまざまな予期しない方法で使用できるキーワードと構造がたくさんあります。 – Oliver

+0

@Oliverあなたは投票して答えの一つを受け入れるべきです:) –

+0

@aF。ごめんなさい!私は気を散らして、12分の受け入れ制限が上がったときにチェックバックするのを忘れてしまった。 – Oliver

10

このようにそれを実行してください:あなたはストアドプロシージャでこれをやっているし、あなたに単語を使用する必要があります出力結果セットでの選択の結果をしたくない場合は

Declare @a int; 
Declare @b int; 

SELECT @a=StartNum,@b=EndNum FROM Users Where UserId = '1223' 

PRINT @a 
PRINT @b 
1

Declare @a int; 
Declare @b int; 

SELECT StartNum, EndNum 
FROM Users 
Where UserId = '1223' 
INTO @a, @b; 

また、このように使用することができます:

SELECT StartNum, EndNum 
INTO @a, @b 
FROM Users 
Where UserId = '1223'; 
関連する問題