今天有個同事找我,他說他有個需求,需要進行行轉列,但是又跟一般的行轉列有些區別,具體需求如下所說,需要將表1的數據轉換為表2的顯示格式.
我想了一下,給出了一個解決方法,具體如下所示(先給出測試數據)
INSERT INTO TEST
SELECT 1, 1, '定型名稱', '預定型' UNIONALL
SELECT 1, 2, '進布方式', '調平' UNIONALL
SELECT 1, 3, '21米長定型機開機速度', '25' UNIONALL
SELECT 1, 4, '烘箱溫度', '195' UNIONALL
SELECT 1, 5, '門幅(CM)', '200-210-210' UNIONALL
SELECT 2, 1, '過軟', 'na' UNIONALL
SELECT 2, 2, '調平', 'na' UNIONALL
SELECT 2, 3, '25', '+/-0.5' UNIONALL
SELECT 2, 4, '150', '+/-5℃頭尾烘箱除外' UNIONALL
SELECT 2, 5, '188-198-198', '+/-3'
實現其功能的SQL語句如下所示
WITH T
AS
(
SELECTNO, ROW_NUMBER() OVER (PARTITION BYNOORDERBY STEP) AS ROWID, NAME, VAlUEFROM TEST
)
SELECTNO, MAX(NAME) AS NAME, MAX(VALUE) ASVALUE, MAX(NAME2) AS NAME2 , MAX(VALUE2) AS VALUE2
新聞熱點
疑難解答