2013-10-23 74 views
0

我試圖根據產品的高度設置返回結果。如果產品大於86,我希望返回Transom和結果集,如果它小於我返回的No Transom。如何使用CASE WHEN SQL

我試圖使用下面的CASE WHEN評估結果,但我的實現是不正確的。

SELECT c.ID, 
     (p.Number +'|'+ pr.[Profile] +'|'+ SUBSTRING(CAST((p.Width - (pr.Siteline * 2))AS VARCHAR(9)),0,3) 
     + 'x84' +'|Pivot:'+e.PivotType+'|Hinge:'+e.Hinged +'|Swing:'+e.Swing) as [Name], 
     ('Header:'+ CAST(pr.Siteline as VARCHAR(7))+'|Jamb:'+ CAST(pr.Siteline as VARCHAR(7)))as[Sitelines], 

     CASE p.Height 
      WHEN > 86 THEN 'Transom' 
      ELSE 'No Transom' 

FROM   Generic.Part   p WITH(NOLOCK)       JOIN 
       Generic.Profiles  pr WITH(NOLOCK) ON p.ProfileID = pr.ID JOIN 
       Generic.ComponentPart cp WITH(NOLOCK) ON cp.PartID = p.ID JOIN 
       Generic.Component  c WITH(NOLOCK) ON cp.ComponentID = c.ID JOIN 
       Generic.ComponentType ct WITH(NOLOCK) ON ct.ID = c.ComponentTypeID JOIN 
       Generic.FramingSystem fs WITH(NOLOCK) ON fs.ID = c.FrameSystemID JOIN 
       Generic.Entrance  e WITH(NOLOCK) ON c.ID = e.DoorFrameID 
       WHERE fs.UserID = 'DA91DC34-FA29-4ABD-BCC0-xxxxxxxxxxxx' 

回答

5

你不說實際的錯誤是什麼,但嘗試:

CASE 
    WHEN p.Height > 86 THEN 'Transom' 
    ELSE 'No Transom' 
END AS [ColumnName] 
+0

完美,謝謝! –

1

你只是缺少END

CASE p.Height 
     WHEN > 86 THEN 'Transom' 
     ELSE 'No Transom' 
    END