2016-04-20 122 views
0

因此,我花了一段時間才弄清楚如何創建我的第一個UDF,但在修復它之後,我想我的下一個將是小菜一碟。不幸的是,情況並非如此。我正在拉一個字段(ORIG_CLAIM,float),我想對這個數字進行分類。這裏是我的代碼:SQL - 在UDF case語句中使用邏輯運算符

CREATE FUNCTION [dbo].[fnOC_LEVEL](@ORIG_CLAIM float) 
RETURNS nvarchar(255) 
AS 
BEGIN 
    DECLARE @result as varchar(255); 
    SELECT @result = case @ORIG_CLAIM 
     when < 1000 then 'A_Under 1000' 
     when >= 1000 and <= 4999.99 then 'B_1000-4999' 
     when >= 5000 and <= 7499.99 then 'C_5000-7499' 
     when >= 7500 and <= 9999.99 then 'D_7500-9999' 
     when >= 10000 and <= 14999.99 then 'E_10000-14999' 
     when >= 15000 and <= 19999.99 then 'F_15000-19999' 
     when >= 20000 then 'G_Over 20000' 
    END 
    RETURN @result 
END 
GO 

我得到錯誤「附近有語法錯誤<'」。任何人都可以小時我可能做錯了什麼?

回答

0

我想你可能必須指定比較值爲float。例如:

when < 1.0E3 then 'A_Under 1000' 
when >= 1.0E3 and <= 4.99999E3 then 'B_1000-4999' 

+1

我想通了,我的問題。這不是數字的格式。這是案件陳述本身。 'SELECT @result = case when @ORIG_CLAIM <1000 THEN'A_Under 1000'' – Niq6