如何在sqlserver中使用存储过程在3个pass整数参数中找到最大值?

cngwdvgl  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(605)

我尝试了下面的代码,但无法得到结果。有人能帮我解决以下问题吗:

  1. CREATE PROCEDURE highest_no
  2. (@a int,
  3. @b int,
  4. @c int)
  5. AS
  6. BEGIN
  7. DECLARE @highest varchar()
  8. IF (@a > @b) AND (@a > @c)
  9. THEN PRINT @a;
  10. ELSIF (@b > @a) AND (@b > @c)
  11. THEN PRINT @b;
  12. ELSE PRINT @c
  13. END
  14. DECLARE @a1 int, @b1 int, @c1 int
  15. SET @a1 = 5
  16. SET @b1 = 4
  17. SET @c1 = 6
  18. EXEC highest_no @a1, @b1, @c1

我试过上面的代码,但我无法得到结果。有没有人能帮我在sqlserver中用存储过程找到3个pass integer参数中的最大值?

qzwqbdag

qzwqbdag1#

最简单的方法是“取消拆分”它们,然后聚合:

  1. CREATE PROC dbo.Highest_Int @a int, @b int, @c int, @highest int OUTPUT AS
  2. BEGIN
  3. SELECT @highest = MAX(i)
  4. FROM (VALUES(@a),(@b),(@c))V(i);
  5. END;
  6. GO
  7. DECLARE @h int;
  8. EXEC dbo.Highest_Int 1,2,3, @h OUTPUT;
  9. PRINT @h;

相关问题