Dichiarazione CASE SQL
-
21-08-2019 - |
Domanda
è la seguente possibile in 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
Grazie.
Soluzione
provare questo:
Select @Type =
(select case
WHEN len(@code) IN (12,14,17) THEN 1
WHEN len(@code) IN (13,15,18) THEN 2
WHEN len(@code) IN (8,10) THEN 3
ELSE 0
END)
Altri suggerimenti
Questo dovrebbe farlo:
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
try
SELECT CASE
WHEN LEN(@gcode) IN(x, y, z) THEN a
END
etc.
o potrebbe essere necessario
SELECT CASE LEN(@gcode)
WHEN x THEN a
WHEN y THEN a
END
ecc.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow