【发布时间】:2012-02-03 03:40:03
【问题描述】:
SQL 从表中返回以下结果:CowTracking
ID cow_id barn_id
-- ------ -------
19 5 3
20 5 2
21 5 9
22 5 1
我正在尝试使用 SQL 中的 PIVOT 获得以下结果
cow_id barn1 barn2 barn3 barn4
------ ----- ----- ----- -----
5 3 2 9 1
这是我到目前为止的代码。
SELECT *
FROM
(
SELECT TOP 4 *
FROM CowTracking
WHERE cow_id = 5
) AS DataTable
PIVOT
(
MIN(barn_id) **IDK what function to use and which column to use it on**
FOR ID ??<---**NOT SURE**
IN
(
[barn1], [barn2], [barn3], [barn4]
)
) AS PivotTable
ERRORS: Error converting data type nvarchar to int
The incorrect value "barn1" is supplied in the PIVOT operator
注意:barn_id 是一个 varchar。无法更改数据类型。
我不是想加/乘/聚合或其他什么。我只是想将行移到一列
我该怎么做呢? 这是正确的思考过程吗?
我什至需要使用 PIVOT 吗?
【问题讨论】: