SQL CASE语句
在SQL Server 2000中是否可以执行以下操作SQL CASE语句,sql,sql-server,sql-server-2000,case-statement,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 谢谢 try
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
谢谢
try
SELECT CASE
WHEN LEN(@gcode) IN(x, y, z) THEN a
END
etc.
或者你可能需要
SELECT CASE LEN(@gcode)
WHEN x THEN a
WHEN y THEN a
END
等等
试试这个:
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)
这应该做到:
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
在SQL Server 2000中运行时发生了什么?谢谢,伙计!我很久以前就这么做了,但不记得了……在msdn和BOL上也找不到。看看下面Dave Markle的解决方案——他使用了相同的大小写语法,但收紧了函数本身的语法