Предложение ORDER BY против функции SQL Server - PullRequest
0 голосов
/ 10 марта 2011

Я хочу использовать предложение ORDER BY в функциях SQL Server. Но я не могу использовать это, это не позволяет. Итак, как я могу использовать это?

CREATE FUNCTION PersonIDGet
    (

    )
RETURNS int
AS
BEGIN

    DECLARE @PersonID int;
        SET @PersonID = (SELECT PersonID FROM Person ORDER BY PersonID DESC);

        RETURN @PersonID

END

Я получил эту ошибку.

Предложение ORDER BY недопустимо в представления, встроенные функции, производные таблицы, подзапросы и общая таблица выражений, если TOP или FOR XML не также указано.

1 Ответ

3 голосов
/ 10 марта 2011

В вашем утверждении выбора должна быть первая позиция.Вы выбираете более одной строки, поэтому SQL Server не может определить, какой PersonID будет назначен @ PersonID.

CREATE FUNCTION PersonIDGet
    (

    )
RETURNS int
AS
BEGIN
    DECLARE @PersonID int;
    SET @PersonID = (SELECT TOP 1 PersonID FROM Person ORDER BY PersonID DESC);
    RETURN @PersonID
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...