2017-05-22 13 views
-2

選択されたコードの数をループし、@ language_desc_1から@ language_desc_30までの宣言変数にコード記述を割り当てる方法。T-SQL - 宣言変数をループしてビルドする方法

したがって、以下のデータに基づいています。表示するフラグが2つしかない場合、2には3が割り当てられません。

データフィールド駆動のラベルツールを使用します。だから私は変数を割り当てることができる必要があります。

目的は、ラベルが正しいデータを読み取るようにデータフィールドでデータ文字列を作成することです。

Products_Descriptionsテーブルは次のようになります。

8332 05 US LARGE GREEN CHAIR 1 Y 
8332 05 MX SILLA VERDE GRANDE 2 Y 
8332 05 CN 大綠色的椅子 3 N 

DECLARE 
@language_desc_1 nvarchar(100), 
@language_desc_2 nvarchar(100), 
@language_desc_3 nvarchar(100), 
@language_desc_4 nvarchar(100), 
@language_desc_5 nvarchar(100) 

BEGIN 
select 
    @language_desc_1 = case when a.RowNum = 1 then a.Language_code else null end, 
    @language_desc_2 = case when a.RowNum = 2 then a.Language_code else null end, 
    @language_desc_3 = case when a.RowNum = 3 then a.Language_code else null end, 
    @language_desc_4 = case when a.RowNum = 4 then a.Language_code else null end, 
    @language_desc_5 = case when a.RowNum = 5 then a.Language_code else null end 
from 
    (
    select 
     Language_code, ROW_NUMBER() over (order by Sort_Code) RowNum 
    from 
     Products_Descriptions 
     where Display_On_Label_Flag = 'Y' 
    ) a 
END 

select @language_desc_1 
select @language_desc_2 
+2

私はあなたが欲しいものを理解できませんが、何かをしようとしているような匂いがします。このコードが何を達成しようとしているかについてもっと説明できますか?あなたの最後のゲームは何ですか? – JNevill

+0

こんにちはJNevill、最終的に各products_descriptionsコードをループし、language_desc_1 = "LARGE GREEN CHAIR"とlanguage_desc_2 = "SILLA VERDE GRANDE"を割り当てます。 –

+4

私はそれを得て、変数名に値を割り当てながら動的に参照することは(不可能ではないにしても)難しいでしょう。一般的に、これをプログラミングする際には、Arrays forを使用します。私の質問は、あなたがそれらを読み込んだら、それらの 'language_desc_N'変数を使って何をするつもりです。これは非常に[xy問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のように感じます – JNevill

答えて

0

私の目標は、唯一のC#のDLLを開発することなく、ストアドプロシージャを変更するには、SQLを知っている私の会社でのユーザーのために何かを開発することでした。私はこれを処理するためにC#dllを作成することにしました。私たちにはC#開発者が2人しかいません。

ご協力いただきありがとうございます。

関連する問題