【问题标题】:Create Combination of list of value in SQL Server stored procedure在 SQL Server 存储过程中创建值列表的组合
【发布时间】:2017-03-27 05:32:14
【问题描述】:

我的 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}

有人可以帮忙吗?

【问题讨论】:

  • {F1, F2, F3} ,{P1, P2} ... 是单参数!
  • 没有。第一个参数是F1 F2 F3。第二个参数是P1 P2。第三个参数是 A1 A2 A3。休息参数为空。你可以用逗号代替空格

标签: stored-procedures combinations


【解决方案1】:

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

下面是代码:

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多