Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL Server中使用存储过程在3个pass integer参数中找到最大数?_Sql_Sql Server_Stored Procedures - Fatal编程技术网

如何在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;