我正在尝试在语句中放置一个> =条件,但它不允许这种情况。
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 :(得分: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。