【发布时间】:2021-12-27 18:21:14
【问题描述】:
我正在开发一个使用 C# 和 SQL Server 数据库的项目。现在我必须编写一个存储过程,它需要从 3 个不同的列中获取一个 MAX 值。
我的代码如下所示:
CREATE PROCEDURE [dbo].[sp_GetClass]
@surname nvarchar(50),
@maxClass int OUT
AS
SELECT @maxClass = MAX
FROM (VALUES (Programming), (Mathematics), (Physics))
FROM MissLess
WHERE Surname LIKE '%' + @surname + '%'
GO
我收到第二个FROM 的错误,我不知道如何解决它。
这个想法是让它在输入姓氏时从这些列中获取最大值。当没有输入时(按回车键),它只显示所有姓氏中这 3 列的最大值。
对不起,如果格式或问题没有被问到,这是我在这里的第一篇文章。
编辑:@name 出错,应该是@surname;并且名称应该是姓氏。 编辑最终版:感谢您的出色帮助。我是所有这一切的超级新手,但这一切似乎都很有趣。差点就放弃了,但决定试一试。谢谢大家的回答!!!
【问题讨论】:
-
旁注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本不使用前缀! -
感谢您提供的信息。我才刚开始,老师很可能会让我们知道这件事。感谢您的提醒。
-
或者,如果您使用的是 Azure SQL 数据库,请查看
GREATEST函数
标签: c# sql-server