Сценарий использования в процедуре с использованием mssql2005 - PullRequest
0 голосов
/ 18 октября 2011
CREATE PROCEDURE SortModules
@flag int
AS 
BEGIN
    CASE @flag  
        WHEN  0 THEN SELECT FriendlyName,ModuleID FROM [dbo].[Modules] order by FriendlyName asc
        WHEN  1 THEN SELECT FriendlyName,ModuleID FROM [dbo].[Modules] order by FriendlyName desc
    END
END<

В вышеописанной процедуре я получил ошибку
. Incorrect syntax near the keyword 'CASE'.
Incorrect syntax near the keyword 'WHEN'.
Incorrect syntax near the keyword 'END'..
Пожалуйста, помогите найти мою ошибку. Спасибо

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Я бы предложил использовать здесь выражение IF вместо CASE.

IF @flag = 0 
BEGIN
    SELECT FriendlyName,ModuleID FROM [dbo].[Modules] order by FriendlyName
END
ELSE
BEGIN
    SELECT FriendlyName,ModuleID FROM [dbo].[Modules] order by FriendlyName DESC 
END

Дополнительная информация о CASE.

0 голосов
/ 18 октября 2011
SELECT FriendlyName,ModuleID
FROM [dbo].[Modules]
ORDER BY
    CASE WHEN @flag = 0 THEN FriendlyName END ASC,
    CASE WHEN @flag = 1 THEN FriendlyName END DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...