2
select case  when datepart (mm,getdate())>3 then 'abc' else 2 end

将 varchar 值“abc”转换为数据类型 int 时转换失败。

4

3 回答 3

5

您返回的值case必须是相同的类型。

select case  when datepart (mm,getdate())>3 then 'abc' else '2' end
于 2013-07-10T11:46:57.107 回答
2

尝试这个;

select CASE WHEN
       datepart (mm,getdate())>3 then 'abc' else '2'
       END

CASE (Transact-SQL)

else_result_expression 和任何 result_expression 的数据类型必须相同或者必须是隐式转换。

于 2013-07-10T11:48:03.343 回答
1

应该是这样的

select case  when datepart (mm,getdate())>3 then 'abc' else '2' end
于 2013-07-10T11:47:41.063 回答