如何使用> = sql case语句中的条件?

时间:2015-12-08 20:28:23

标签: sql sql-server tsql

我正在尝试在语句中放置一个> =条件,但它不允许这种情况。

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

还有其他办法吗?

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分: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。