列的类型""与UNPIVOT列表中指定的其他列的类型冲突 - SQL Server 2008

时间:2016-02-11 13:11:20

标签: sql sql-server sql-server-2008 tsql

我有这个查询

SELECT 
    MUESTRAS, POZOS, PRIORITY, NAME, VALUE
FROM 
    (SELECT 
         MUESTRAS, POZOS, PROJECTCODE, SAMPLETYPE,
         PRIORITY, CAST(VAR1 AS NVARCHAR(MAX)) AS VAR1, NUM1, NUM2 
     FROM 
         WS_LEYES_PTXT_PILAS_CALCULADAS) p
UNPIVOT
   (VALUE FOR NAME IN
      (VAR1,-- Varchar maybe Null
       NUM1,-- Float
       NUM2)-- Float
) AS unpvt;

我尝试转换所有变量,但我有相同的错误

谢谢!和奖励

1 个答案:

答案 0 :(得分:2)

您需要将所有三列转换为相同的类型:

SELECT MUESTRAS, POZOS, PRIORITY, NAME, VALUE
FROM (SELECT MUESTRAS, POZOS, PRIORITY,
             CAST(VAR1 AS NVARCHAR(MAX)) AS VAR1,
             CAST(NUM1 AS NVARCHAR(MAX)) as NUM1,
             CAST(NUM2 AS NVARCHAR(MAX)) as NUM2
      FROM WS_LEYES_PTXT_PILAS_CALCULADAS
     ) p
UNPIVOT
   (VALUE FOR NAME IN
      (VAR1,-- Varchar maybe Null
       NUM1,-- Float
       NUM2)-- Float
) AS unpvt;

您可能希望使用str()之类的内容来更好地控制格式。