-1

我有一张表,我想以 2 种格式输出记录。

在第一个输出中,我希望表格行显示为左右组,您可以在图像中看到。在第二个输出中,我希望行左一右。

我正在使用 SQL Server。

说明 1

在此处输入图像描述

在此处输入图像描述

我尝试过使用枢轴但没有成功。

4

1 回答 1

2

如果你必须在 T-SQL 中做这样的事情,这是一种方法......

----------------------------
--  Display 1
----------------------------
DECLARE @ColBreak INT = 5
;WITH MyTable (SrNo, ItemNo, Qty) AS
(
    SELECT 1, 'A1', 150 UNION ALL
    SELECT 2, 'A2', 100 UNION ALL
    SELECT 3, 'A3', 300 UNION ALL
    SELECT 4, 'A4', 150 UNION ALL
    SELECT 5, 'A5', 100 UNION ALL
    SELECT 6, 'A6', 300 UNION ALL
    SELECT 7, 'A7', 150 UNION ALL
    SELECT 8, 'A8', 100 UNION ALL
    SELECT 9, 'A9', 300 UNION ALL
    SELECT 10, 'A10', 150
)
,Column1 AS
(
    SELECT *
    FROM MyTable T1
    WHERE SrNo  <= @ColBreak
)
,Column2 AS
(
    SELECT *
    FROM MyTable T1
    WHERE SrNo  > @ColBreak
)
SELECT *
FROM Column1 T1
JOIN Column2 T2 ON T1.SrNo + @ColBreak = T2.SrNo

----------------------------
--  Display 2
----------------------------

;WITH MyTable (SrNo, ItemNo, Qty) AS
(
    SELECT 1, 'A1', 150 UNION ALL
    SELECT 2, 'A2', 100 UNION ALL
    SELECT 3, 'A3', 300 UNION ALL
    SELECT 4, 'A4', 150 UNION ALL
    SELECT 5, 'A5', 100 UNION ALL
    SELECT 6, 'A6', 300 UNION ALL
    SELECT 7, 'A7', 150 UNION ALL
    SELECT 8, 'A8', 100 UNION ALL
    SELECT 9, 'A9', 300 UNION ALL
    SELECT 10, 'A10', 150
)
SELECT *
FROM MyTable T1
JOIN MyTable T2 ON T1.SrNo + 1 = T2.SrNo
WHERE T1.SrNo % 2 != 0
于 2013-01-11T07:27:07.053 回答