Sql server 2008 r2 由于类型冲突,取消激励数据失败

Sql server 2008 r2 由于类型冲突,取消激励数据失败,sql-server-2008-r2,Sql Server 2008 R2,我正在使用SQL server 2008,我正在尝试取消填充数据。以下是我正在使用的数据: TIME_ELAPSE BUILDINGS_CLEARED FLOORS_CLEARED AWAITING_PERC ----------- ----------------- -------------- ------------------ 15h 21m 4/4 12/12 0 我需要像行值一样输出到列: TIME_ELAPSE

我正在使用SQL server 2008,我正在尝试取消填充数据。以下是我正在使用的数据:

TIME_ELAPSE BUILDINGS_CLEARED FLOORS_CLEARED AWAITING_PERC
----------- ----------------- -------------- ------------------
15h 21m     4/4               12/12          0
我需要像行值一样输出到列:

TIME_ELAPSE         15h 21m 
BUILDINGS_CLEARED   4/4
FLOORS_CLEARED      12/12
AWAITING_PERC       0
我尝试的是:

SELECT NAME,VALUE
FROM #TEMP_DRILLUP_SUMMARY
UNPIVOT(VALUE FOR NAME IN (Time_Elapse,BUILDINGS_CLEARED,FLOORS_CLEARED,AWAITING_PERC))D
我收到的错误是:

Msg 8167,16层,状态1,第72行清除的柱建筑物类型与UNPIVOT列表中指定的其他柱类型冲突


将所有列置于同一数据类型将允许您使用UNPIVOT语句

样本数据

发行复制

这使得:

等待_PERC的列的类型与UNPIVOT列表中指定的其他列的类型冲突

解决方案

在取消激活之前,将所有列设置为相同的数据类型我使用了NVARCHA10,因为您没有包含表定义

with cte as
(
  select TIME_ELAPSE,
         BUILDINGS_CLEARED,
         FLOORS_CLEARED,
         convert(nvarchar(10), AWAITING_PERC) as AWAITING_PERC -- align data types
  from test2
)
SELECT NAME, VALUE
FROM cte
UNPIVOT(VALUE FOR NAME IN (TIME_ELAPSE, BUILDINGS_CLEARED, FLOORS_CLEARED, AWAITING_PERC)) D
结果


要查看正在运行的内容。

请仅标记您正在使用的SQL Server。您标记了4个看起来不太可能的不同版本。还有,你尝试了什么,为什么不适合你?我想回答很多人的问题可能会有帮助。我尝试了union all并获得了一个输出,但我需要在unpivot查询功能中使用它,所以请更正我用于清除标记的查询库,看起来是时候升级到。你的问题包括你的个人尝试。您是否尝试过使用关键字?选择名称,从TEMP\u DRILLUP\u SUMMARY UNPIVOTVALUE中选择名称随时间推移的值,清除建筑物,清除楼层,等待百分比另一种方法是交叉应用值转换nvarchar10,等待百分比,然后您不需要CTE
SELECT NAME, VALUE
FROM test2
UNPIVOT(VALUE FOR NAME IN (Time_Elapse, BUILDINGS_CLEARED, FLOORS_CLEARED, AWAITING_PERC)) D
with cte as
(
  select TIME_ELAPSE,
         BUILDINGS_CLEARED,
         FLOORS_CLEARED,
         convert(nvarchar(10), AWAITING_PERC) as AWAITING_PERC -- align data types
  from test2
)
SELECT NAME, VALUE
FROM cte
UNPIVOT(VALUE FOR NAME IN (TIME_ELAPSE, BUILDINGS_CLEARED, FLOORS_CLEARED, AWAITING_PERC)) D
NAME              VALUE
----------------- -------
TIME_ELAPSE       15h 21m
BUILDINGS_CLEARED 4/4
FLOORS_CLEARED    12/12
AWAITING_PERC     0