在SQL Server存储过程中创建值列表的组合

时间:2017-03-27 05:32:15

标签: stored-procedures combinations

我的SQL Server存储过程中有9个数据类型为varchar(50)的参数。但是,我只在运行时知道参数中的项目数。

让我们说,为简单起见,我的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}

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我通过使用拆分和交叉连接来解决它

以下是代码:

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;