日期:2014-05-18 浏览次数:20620 次
CREATE  TABLE tsgss(id varchar(20),a int)
INSERT tsgss SELECT '0001',1
UNION ALL SELECT '0002',3
UNION ALL SELECT '0003',66
UNION ALL SELECT '0004',34
UNION ALL SELECT '0005',6
UNION ALL SELECT '0006',45
UNION ALL SELECT '0007',23
UNION ALL SELECT '0008',33
UNION ALL SELECT '0009',7
UNION ALL SELECT '0010',9
go
CREATE   FUNCTION getMid()
RETURNS float
AS
BEGIN
    DECLARE @s table(id int identity(1,1),a int)
    DECLARE @g float
    
    INSERT @s SELECT a FROM tsgss
    IF @@ROWCOUNT %2<>0 
        SELECT @g=a FROM @s WHERE id=(SELECT min(id)+max(id) FROM @s)/2
    ELSE
        SELECT @g=avg(a*1.0) FROM @s WHERE id in(SELECT max(id)/2 FROM @s UNION ALL SELECT max(id)/2+1 FROM @s)
    RETURN @g
END
SELECT dbo.getMid()