SQL CASE语句

Sai*_*han 0 sql sql-server sql-server-2000 case-statement

SQL Server 2000中是否可以使用以下命令?

CREATE FUNCTION getItemType  (@code varchar(18))
RETURNS int
AS
BEGIN
Declare @Type tinyint
Select @Type = case len(@code)
WHEN 12,14,17 THEN 1
WHEN 13,15,18 THEN 2
WHEN 8,10 THEN 3
ELSE  0
END
RETURN (@Type)
END
Run Code Online (Sandbox Code Playgroud)

谢谢.

Dav*_*kle 6

这应该这样做:

CREATE FUNCTION getItemType(@code VARCHAR(18))
RETURNS INT
AS
BEGIN
    RETURN CASE 
        WHEN LEN(@code) IN (12,14,17) THEN 1
        WHEN LEN(@code) IN (13,15,18) THEN 2
        WHEN LEN(@code) IN (8,100)    THEN 3
        ELSE  0
    END
END
Run Code Online (Sandbox Code Playgroud)