我的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}
有人可以帮忙吗?
答案 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;