2011-12-19 10 views
1

SELECT INTO文を使用して変数のリストを設定しようとしていますが、行を見つける必要があるときにnullデータを返すクエリに関する問題が発生しています。本当に奇妙な部分は、私が特定の列を選択した場合、それは動作しますが、他の列では機能しません。一度に1つずつ問題を分離するために、私はクエリを単純化しました。特にmysqlでクエリを実行すると誤ってNULLが返される

SELECT MarketName INTO @Product_1 
FROM STG_XREF_ELS_PRODUCTS 
WHERE MarketName = @ThisMarketName 
LIMIT 1; 

...私はまったく同じクエリを入力するが、別のフィールドを選択した場合しかし、それは正常に動作し、この文は動作しません

SELECT Product_1 INTO @Product_1 
FROM STG_XREF_ELS_PRODUCTS 
WHERE MarketName = @ThisMarketName 
LIMIT 1; 

:ここで私が実行しようとしていますものです私はこれがProduct_1が実際にnullであるケースではないことを確認するためにテストしました。Product_1がnullであるxrefテーブルにインスタンスがありません。また、テーブルからProduct_1を1つだけ選択してwhere句を指定しないと、nullの結果が得られます。

私も使って試みている:あなたの助けを事前に

set @Product1 = (select Product_1 
       FROM STG_XREF_ELS_PRODUCTS 
       WHERE MarketName = @ThisMarketName); 

感謝を!

P.S.

+3

fyi:MySQLの@記号はセッション変数を表します。 t-sqlでは、@はローカル変数を表します。 MySQLのローカル変数にはプレフィックスは必要ありません。値が期待どおりでない可能性があるため、MySQLでセッション変数を使用することには注意してください(MySQLを使用しているSQLサーバの人にはこれがたくさんあります)。 –

+0

バックテックで試してみましたか? – eddy147

答えて

0

ので、変数の名前を変更しよう:STG_XREF_ELS_PRODUCTS MarketName = @ThisMarketName LIMIT 1 FROM

SELECT INTO Product_1 @Product_variable 。