2015-12-08 82 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。