【问题标题】:Single column of data into multiple columns single row单列数据分成多列单行
【发布时间】:2011-03-03 06:08:15
【问题描述】:

我有一张只有一列的表格。如何编写 T-SQL 语句将表中的所有行作为一行返回,但表中的每一行数据为一列?

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:

    【讨论】:

    • 实际上,PIVOT 并没有按照操作的要求进行操作。它会将 names 列作为他的表的值,而不是新列的值。
    【解决方案2】:

    您可以通过构建动态 sql 语句来做到这一点。

    -- Test data
    declare @T table (F varchar(10))
    insert into @T values
    ('Row 1'),
    ('Row 2'),
    ('Row 3'),
    ('Row 4'),
    ('Row 5')
    
    -- String to hold dynamic sql
    declare @S as varchar(max)
    set @S = 'select '
    
    --Build string
    select @S = @S + quotename(F, '''') + ',' 
    from @T
    set @S = left(@S, len(@s)-1)
    
    --Execute sql 
    exec (@S)
    

    结果

    ----- ----- ----- ----- -----
    Row 1 Row 2 Row 3 Row 4 Row 5
    

    【讨论】:

      猜你喜欢
      • 2019-08-09
      • 2014-07-24
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 2017-09-12
      • 2023-03-09
      • 2021-10-29
      • 2018-04-04
      相关资源
      最近更新 更多