Если вы хотите получить полное имя для конкретной должности, попробуйте следующий пример.В вашем случае ROW_NUMBER()
используется без PARTITION BY
, поэтому TOP(1)
не требуется.
Ввод:
DECLARE @MechanicExpertTable AS TABLE (
Id INT,
FirstName NVARCHAR(128),
LastName NVARCHAR(128)
);
INSERT INTO @MechanicExpertTable
(Id, FirstName, LastName)
VALUES
(1, 'FirstName1', 'LastName1'),
(2, 'FirstName2', 'LastName2'),
(6, 'FirstName6', 'LastName6'),
(7, 'FirstName7', 'LastName7'),
(9, 'FirstName9', 'LastName9')
T-SQL:
DECLARE @MechanicExpert1 NVARCHAR(128)
SELECT TOP(1) @MechanicExpert1 = FullName
FROM (
SELECT
ROW_NUMBER() OVER(ORDER BY Id ASC) AS rownumber,
FirstName + ' ' + LastName AS FullName
FROM @MechanicExpertTable
) t
WHERE rownumber = 3
PRINT @MechanicExpert1
Вывод:
FirstName6 LastName6