更改动态生成的列的数据类型

时间:2012-05-13 17:44:45

标签: sql-server-2008

我有一个临时表,其中列是使用pivot动态生成的。当我使用pivot函数时,列本身是int数据类型。列的值为0或1.现在我想用'Y'更新1,用'N'更新0。但这样做会导致转换错误。请帮忙。

1 个答案:

答案 0 :(得分:0)

在此查询中,您需要将int值转换为varchar。

set @a= 'select  * into ##test2   
from ##test  
PIVOT  (  Count(OtherConditionCode)  
FOR [CodeDescription] IN  ('+@cols+')  )  AS p'; 

我不知道你的所有列名,但它看起来应该是这样的,假设col4是1 | 0的那个。

set @a = '
  select col1, col2, col3,
    case when col4 = 1 then 'Y' else 'N' end as col4
  from ##test
  PIVOT ...