Sql 转换案例中的varchar值时转换失败

Sql 转换案例中的varchar值时转换失败,sql,sql-server,Sql,Sql Server,当我运行下面的case语句时,我遇到了这个错误。我想我必须在某个时候转换,但不确定在哪里或如何转换 将varchar值“重新分配”转换为数据时,转换失败 输入int ,(当Mstime=10时,则Mstime结束)作为时间组 如果要为该表达式返回数据类型,则需要将cast()Mstime转换为varchar(30) ,(case when Mstime <=10 then cast('reassign' as varchar(30) ) when Mstime >=10

当我运行下面的case语句时,我遇到了这个错误。我想我必须在某个时候转换,但不确定在哪里或如何转换

将varchar值“重新分配”转换为数据时,转换失败 输入int

,(当Mstime=10时,则Mstime结束)作为时间组
如果要为该表达式返回数据类型,则需要将
cast()
Mstime
转换为
varchar(30)

,(case when Mstime <=10 then cast('reassign' as varchar(30) ) 
      when Mstime >=10 then cast(Mstime as varchar(30) )
      end ) as TimeGroup
,(Mstime=10时的情况,然后强制转换(Mstime为varchar(30))
结束)作为时间组
如果要为该表达式返回数据类型,则需要将
cast()
Mstime
转换为
varchar(30)

,(case when Mstime <=10 then cast('reassign' as varchar(30) ) 
      when Mstime >=10 then cast(Mstime as varchar(30) )
      end ) as TimeGroup
,(Mstime=10时的情况,然后强制转换(Mstime为varchar(30))
结束)作为时间组

播放
其他
,而不是
然后
(它已经是一个字符串):

(Mstime=10时的情况,然后强制转换(Mstime为varchar(30))
结束)作为时间组

您面临的问题是,
ELSE
返回一个
INT
。根据类型兼容性规则,SQL Server尝试让
大小写
表达式返回
INT
而不是字符串。

强制转换
else
,而不是
then
(它已经是字符串):

(Mstime=10时的情况,然后强制转换(Mstime为varchar(30))
结束)作为时间组
您面临的问题是,
ELSE
返回一个
INT
。根据类型兼容性规则,SQL Server尝试让
CASE
表达式返回
INT
,而不是字符串

(CASE WHEN Mstime <= 10 THEN 'reassign'
      WHEN Mstime >= 10 THEN CAST(Mstime as varchar(30))
 END) as TimeGroup