如何在SQL Server中的多行上将单个列拆分为多个列?

时间:2014-07-11 14:41:51

标签: sql sql-server split

我需要在SQL Server中创建一个存储过程,它接受以下两个参数:

  1. 返回1列的select语句。
  2. 许多专栏。
  3. 然后,存储过程将运行select语句并返回select语句的结果,并将单列的值拆分为每行的给定列数。

    以下是一些例子:

    exec stored_proc ‘select id from table where id between 1 and 20’, 5
    

    选择的结果将是:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    

    存储过程调用的结果将是:

     1            2            3            4            5
     6            7            8            9           10
    11           12           13           14           15
    16           17           18           19           20
    

    或者电话可能是:

    exec stored_proc ‘select id from table where id between 1 and 20’, 10
    

    给出结果:

    1              2              3              4              5              6              7              8              9              10
    11           12           13           14           15           16           17           18           19           20
    

1 个答案:

答案 0 :(得分:0)

虽然我不确定你应该在SQL中这样做,但是可以做到 我认为这样做的方法是创建游标并使用它的迭代来构建动态SQL语句。

在每次迭代中,将每个数据作为新列(字段)添加,当您达到列数时,添加Union Select

之类的内容