如何在SQL Server中使用存储过程在3个pass integer参数中找到最大数?
我尝试了下面的代码,但无法得到结果。有人能在以下方面帮助我吗:如何在SQL Server中使用存储过程在3个pass integer参数中找到最大数?,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我尝试了下面的代码,但无法得到结果。有人能在以下方面帮助我吗: CREATE PROCEDURE highest_no (@a int, @b int, @c int) AS BEGIN DECLARE @highest varchar() IF (@a > @b) AND (@a > @c) THEN PRINT @a; ELSIF (@b > @a) AND (@b > @c) THEN PRI
CREATE PROCEDURE highest_no
(@a int,
@b int,
@c int)
AS
BEGIN
DECLARE @highest varchar()
IF (@a > @b) AND (@a > @c)
THEN PRINT @a;
ELSIF (@b > @a) AND (@b > @c)
THEN PRINT @b;
ELSE PRINT @c
END
DECLARE @a1 int, @b1 int, @c1 int
SET @a1 = 5
SET @b1 = 4
SET @c1 = 6
EXEC highest_no @a1, @b1, @c1
我尝试了上面的代码,但无法得到结果。有谁能帮助我使用SQL Server中的存储过程在3个pass integer参数中找到最大数吗?最简单的方法是“取消PIVOT”它们,然后进行聚合:
CREATE PROC dbo.Highest_Int @a int, @b int, @c int, @highest int OUTPUT AS
BEGIN
SELECT @highest = MAX(i)
FROM (VALUES(@a),(@b),(@c))V(i);
END;
GO
DECLARE @h int;
EXEC dbo.Highest_Int 1,2,3, @h OUTPUT;
PRINT @h;
最简单的方法是“取消分割”它们,然后进行聚合:
CREATE PROC dbo.Highest_Int @a int, @b int, @c int, @highest int OUTPUT AS
BEGIN
SELECT @highest = MAX(i)
FROM (VALUES(@a),(@b),(@c))V(i);
END;
GO
DECLARE @h int;
EXEC dbo.Highest_Int 1,2,3, @h OUTPUT;
PRINT @h;