将varchar值'AJH 123'转换为数据类型int时,SQL转换失败

Sim*_*ice 3 sql t-sql sql-server

我有一个select语句我需要在它上面运行一个case语句来检查一个值,然后输入决定要获取的列.

通话的开始就是这个

select 
case when req.ReportStatusCode in ('draft','submitted') then 
req.ID else 
req.reportNumber
end as [Request Id \ Report Number],
Run Code Online (Sandbox Code Playgroud)

但是,当我打电话给我时,我得到一个错误

将varchar值'AJH 123'转换为数据类型int时转换失败.

这是报告编号字段,我不知道如何阻止这一点.

任何和所有帮助非常感谢

Vam*_*ala 5

case when req.ReportStatusCode in ('draft','submitted')
then cast(req.ID as varchar(255)) else  cast(req.reportNumber as varchar(255)) end
Run Code Online (Sandbox Code Playgroud)

确保case返回相同的数据类型.