首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:列"foo“的类型与UNPIVOT列表中指定的其他列的类型冲突

错误:列"foo“的类型与UNPIVOT列表中指定的其他列的类型冲突
EN

Stack Overflow用户
提问于 2020-03-27 23:24:55
回答 2查看 47关注 0票数 0

我取消了一些列的透视,但不幸的是,它一次又一次地返回相同的错误。"BarCode“列的类型为INT,我将其转换为VARCHAR(50)。

谁能告诉我我哪里做错了?

错误如下:

代码语言:javascript
复制
The type of column "BarCode" conflicts with the type of other columns specified in the UNPIVOT list.
代码语言:javascript
复制
SELECT * 
FROM   (SELECT CONVERT(VARCHAR(50), c.[cross-reference type no_]) AS CrossCode, 
               CONVERT(VARCHAR(50), c.[barcode type])             AS BarCode, 
               CONVERT(VARCHAR(50), c.[cross-reference no_])      AS CrossReference, 
               CONVERT(VARCHAR(50), c.[description])              AS CrossDescription 
        FROM   [item cross reference] c) AS pv 
       UNPIVOT (waarde 
               FOR kolom IN (pv.crosscode, 
                             pv.barcode, 
                             pv.crossreference)) AS unpvt 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-28 01:02:23

使用cross apply取消透视:

代码语言:javascript
复制
SELECT v.* 
FROM [item cross reference] icr CROSS APPLY
     (VALUES ('CrossCode', CONVERT(VARCHAR(50), c.[cross-reference type no_]),
             ('BarCode', CONVERT(VARCHAR(50), c.[barcode type]), 
             ('CrossReference', CONVERT(VARCHAR(50), c.[cross-reference no_])), 
             ('CrossDescription', CONVERT(VARCHAR(50), c.[description]))
      ) v(waarde, kolom);
票数 2
EN

Stack Overflow用户

发布于 2020-03-28 01:50:48

代码语言:javascript
复制
--just remove pv.  :: FOR kolom IN (**pv.**crosscode,

create table [#item cross reference]
(
[cross-reference type no_] varchar(10),
[barcode type] int,
[cross-reference no_] float,
[description] xml
);

insert into [#item cross reference]/*()*/
values('a', 100, 123, '<a>test</a>');

select *
from [#item cross reference];


SELECT * 
FROM   
(
SELECT 
    CONVERT(VARCHAR(50), c.[cross-reference type no_]) AS CrossCode, 
   CONVERT(VARCHAR(50), c.[barcode type])             AS BarCode, 
   CONVERT(VARCHAR(50), c.[cross-reference no_])      AS CrossReference, 
   CONVERT(VARCHAR(50), c.[description])              AS CrossDescription 
FROM   [#item cross reference] c
) AS pv 
UNPIVOT 
(
    waarde FOR kolom IN (CrossCode /*just remove pv.*/, BarCode, CrossReference, CrossDescription)
) AS unpvt;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60889030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档