我有簡單的 table1
columnA columnB
A 10
A 20
B 15
B 50
C 2
C 40
看到這個結果的目標
columnA columnB Newcolumn
A 10 20
B 15 50
C 2 40
我的查詢
SELECT * FROM
(
SELECT
ColumnA, ColumnB
FROM
table1
) t
PIVOT(
COUNT(ColumnA)
FOR ColumnB IN (
[Newcolumn], - Not sure about this Newcolumn
)
) AS pivot_table;
這是錯誤
訊息 8114,級別 16,狀態 1,第 13
行將資料型別 nvarchar 轉換為浮點數時出錯。
訊息 473,級別 16,狀態 1,第 13 行
PIVOT 運算子中提供了不正確的值“Newcolumn”。
PIVOT 運算子中提供了不正確的值“newcolumne”。
uj5u.com熱心網友回復:
保證按 B 列排序:
;WITH src AS ( SELECT columnA, columnB, rn = ROW_NUMBER() OVER (PARTITION BY columnA ORDER BY columnB) FROM dbo.table1 ) SELECT columnA, columnB = [1], newcolumn = [2] FROM src PIVOT ( MAX(columnB) FOR rn IN ([1],[2]) ) AS p;輸出:
A列 B欄 新欄目 一個 10 20 乙 15 50 C 2 40 任意/“我不在乎”:
;WITH src AS ( SELECT columnA, columnB, rn = ROW_NUMBER() OVER (PARTITION BY columnA ORDER BY @@SPID) FROM dbo.table1 ) SELECT columnA, columnB = [1], newcolumn = [2] FROM src PIVOT ( MAX(columnB) FOR rn IN ([1],[2]) ) AS p;這里的輸出是一樣的,但這只是一個巧合:
A列 B欄 新欄目 一個 10 20 乙 15 50 C 2 40 示例db<>fiddle
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410526.html
標籤:
上一篇:SQL連續日期和值
