2017-03-27 14 views
0

SQL Serverストアドプロシージャにデータ型varchar(50)の9個のパラメータがあります。しかし、私は実行時にのみ私のパラメータで持っている項目の数を知っています。作成SQL Serverストアドプロシージャの値リストの組み合わせ

わかりやすくするために、私の9パラメータはF1 F2 F3、P1 P2、A1 A2 A3、null、null、null、null、null、nullです。

ここでは、次のようにすべての組み合わせを生成する必要があります。

{F1 P1 A1}, {F1 P1 A2}, {F1 P1 A3}, {F1 P2 A1}, {F1 P2 A2}, {F1 P2 A3}, 
{F2 P1 A1}, {F2 P1 A2}, {F2 P1 A3}, {F2 P2 A1} {F2 P2 A2}, {F2 P2 A3}, 
{F3 P1 A1}, {F3 P1 A2}, {F3 P1 A3},{F3 P2 A1}, {F3 P2 A2}, {F3 P2 A3} 

誰か助けてもらえますか?

+0

'{F1、F2、F3}' '{P1、P2}' ...単一でありますパラメータ! –

+0

No.最初のパラメータはF1 F2 F3です。2番目のパラメータはP1 P2です。 3番目のパラメータはA1 A2 A3です。 Restパラメータはnullです。 スペースの代わりにカンマを使用できます –

答えて

0

Iスプリットを使用して、それを解決し、クロス以下

に参加するコードである:

SELECT a1.value,a2.value,a3.value 
FROM [Split]('F1,F2,F3',',') a1 
CROSS JOIN [Split]('P1,P2',',') a2 
CROSS JOIN [Split]('A1,A2,A3',',') a3; 
関連する問題