2015-12-08 77 views
1

我试图在声明中放置> =条件,但它不允许这种情况。如何在sql case语句中使用> =条件?

case 
    when ct.CRS_CAREER_LVL_CD = 'G' then 'Graduate ' 
    when ct.CRS_CAREER_LVL_CD = 'L' then 'Law ' 
    when convert(int, left(ct.CRS_CATLG_NO, 4) > = 99 then 'Upper Division' 
    else 'Lower Division' 
end as courseLevelName 

有没有其他方法可以做到这一点?

+0

您是否尝试删除'> ='中的空格? –

+0

是的,我试图删除空间,仍然抛出错误。 – sam

+2

你正在看到什么错误? –

回答

10
when convert(int,left(ct.CRS_CATLG_NO,4) 
      ^ ^    ^  ^
      OPEN  OPEN    CLOSE  CLOSE ? 
2

猜测的问题是,左边4个字符并不总是整数,如果你使用SQL Server 2012或更高版本,您可以使用TRY_CONVERT()

case when ct.CRS_CAREER_LVL_CD = 'G' then 'Graduate ' 
    when ct.CRS_CAREER_LVL_CD = 'L' then 'Law ' 
    when TRY_CONVERT(int,left(ct.CRS_CATLG_NO,4)) > = 99 then 'Upper Division' 
    else 'Lower Division' 
end as courseLevelName 

编辑:看起来你错过了关闭),如果这不是一个错字,那么这可能是问题,如果仍然出现错误,那么可能是非INT。