2017-03-30 4 views
1

を設定し得ていません。困惑しているのは、変数を使用せずに両方を選択して実行すると、正しい行が戻ってくるということです。SQL変数は、私は次のクエリをしようとしています、私はSQLへの比較的新しい誰かとして、ここでは簡単に何かが欠落している可能性があり

SELECT UID FROM TABLEA WHERE EMAIL='[email protected]'; 

UIDを返し、その後

SELECT ProductID FROM TABLEB WHERE UID='123456'; 

「123456」が最初のクエリから返された値であろう商品コード値を返します。

問題は、@ uiddが設定されていないと思われる何らかの理由で変数を組み合わせて使用​​した場合です。理由は何ですか?

私は2008年

答えて

0

おそらく、SQL Server上でこれを実行しています、uuidは長い1文字以上です。 長さのないSQL Serverで文字型を使用します。デフォルトはコンテキストによって異なり、正しくない可能性があります。

ので、これは動作するはずです:

DECLARE @uidd VARCHAR(255); 

SELECT @uidd = UID 
FROM PRODUCTOBJECT 
WHERE EMAIL='[email protected]'; 

SELECT ProductID 
FROM PRODUCTUIDMAPPING 
WHERE UID= @uidd; 
+0

ゴードンは、超高速応答をありがとう、あなたは正しかったです。私は答えを受け入れることができる次の12分以内に:) – fobius

関連する問題