【问题标题】:TSQL results in specific number of columnsTSQL 产生特定数量的列
【发布时间】:2018-06-30 08:00:58
【问题描述】:

我正在尝试创建一个查询,它将行结果分配到特定数量的列(例如 4)。请看下面的截图。

【问题讨论】:

  • 列数限制为 4。如果结果超过 4,则应该转到下一行 4 列。

标签: sql-server tsql transpose


【解决方案1】:

这是演示问题,应该在应用程序级别处理。 但如果你坚持:

SELECT column1 = MIN(CASE WHEN grp=1 THEN PartNumber+CHAR(13)+SerialNumber END)
      ,column2 = MIN(CASE WHEN grp=2 THEN PartNumber+CHAR(13)+SerialNumber END)
      ,column3 = MIN(CASE WHEN grp=3 THEN PartNumber+CHAR(13)+SerialNumber END)
      ,column4 = MIN(CASE WHEN grp=4 THEN PartNumber+CHAR(13)+SerialNumber END)
FROM (SELECT *,ROW_NUMBER() OVER(PARTITION BY rn ORDER BY rn) AS grp
      FROM (SELECT *,(ROW_NUMBER() OVER(ORDER BY 1/0)-1)/4 AS rn FROM tab)s)sub
GROUP BY rn;

DBFiddle Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-28
    • 2017-10-01
    • 2019-03-19
    • 2022-06-10
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多