Gibt es eine Möglichkeit, die oberste Zeile aus einer gespeicherten Prozedur zu erhalten?
Gespeicherte SQL Server-Prozedur
EXEC SelectedJobTypeList
┌─────────────┬──────────────┐
│ JobTypeCode | JobTypeName |
├─────────────┼──────────────┤
│ | Select All |
├─────────────┼──────────────┤
│ A1 | Road work |
├─────────────┼──────────────┤
│ B1 | Design |
├─────────────┼──────────────┤
│ C1 | Build |
└─────────────┴──────────────┘
erwartetes Ergebnis
┌─────────────┬──────────────┐
│ JobTypeCode | JobTypeName |
├─────────────┼──────────────┤
│ | Select All |
└─────────────┴──────────────┘
Lösung des Problems
Ihr Beispiel ist möglicherweise zu stark vereinfacht, da es nicht erforderlich erscheint, einen SP aufzurufen, nur um "Select All" zurückzugeben. Angenommen, Sie müssen in Ihrem Fall den SP anrufen, hätten Sie weitaus mehr Kontrolle, wenn Sie die Ergebnisse in einer temporären Tabelle erfassen und dann die Zeile auswählen, die Sie interessiert. Und obwohl Sie verwenden könnten, TOP 1
haben Sie eine robustere Lösung wenn Sie eine Möglichkeit haben, eine bestimmte Zeile auszuwählen.
Hier ist ein Beispiel
-- 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;
Keine Kommentare:
Kommentar veröffentlichen