如何从存储过程中获取最高值

How to Get Top Value from a Stored Procedure

有没有办法从存储过程中获取第一行?

SQL 服务器存储过程

EXEC SelectedJobTypeList
┌─────────────┬──────────────┐
│ JobTypeCode | JobTypeName  |
├─────────────┼──────────────┤
│             | Select All   |
├─────────────┼──────────────┤
│ A1          | Road work    |
├─────────────┼──────────────┤
│ B1          | Design       |
├─────────────┼──────────────┤
│ C1          | Build        |
└─────────────┴──────────────┘

预期结果

┌─────────────┬──────────────┐
│ JobTypeCode | JobTypeName  |
├─────────────┼──────────────┤
│             | Select All   |
└─────────────┴──────────────┘

您的示例可能过于简单化,因为似乎没有必要调用 SP 只是为了返回“Select 全部”。但是,假设您确实需要在您的案例中调用 SP,如果您将结果捕获到临时 table 然后 select 您感兴趣的行中,您将拥有更多的控制权。虽然您可以使用 TOP 1 如果您有办法 select 特定行,您将拥有更强大的解决方案。

这是一个例子

-- Ensure these datatypes exactly match the data being returned by your SP
CREATE TABLE #tempJobTypeList (JobTypeCode VARCHAR(2), JobTypeName VARCHAR(32));

INSERT INTO #tempJobTypeList (JobTypeCode, JobTypeName)
EXEC SelectedJobTypeList;

SELECT JobTypeCode, JobTypeName
FROM #tempJobTypeList
WHERE JobTypeName = '';

DROP TABLE #tempJobTypeList;