【发布时间】:2018-06-30 08:00:58
【问题描述】:
【问题讨论】:
-
列数限制为 4。如果结果超过 4,则应该转到下一行 4 列。
标签: sql-server tsql transpose
【问题讨论】:
标签: sql-server tsql transpose
这是演示问题,应该在应用程序级别处理。 但如果你坚持:
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;
【讨论】: