Выражения в выражениях падежа - PullRequest
1 голос
/ 21 декабря 2011

Я ищу обходной путь или решение для ситуации, когда я хочу выполнить выражение только на основе двух условий, используя инструкцию CASE.Я написал псевдокод, чтобы проиллюстрировать, что я пытаюсь сделать.

WHERE (RN = 1)
AND
    CASE
        WHEN (@ApplicationName  '' OR @ApplicationGroup  '')
            THEN 

                AND (
                    @AppFilterType = 'Groups' AND [GroupName].[Name] IN (SELECT StringValue FROM [StarTeam].[dbo].fn_CSVToTable(@ApplicationGroup))
                    OR
                    @AppFilterType = 'Apps' AND [AppName].[Name] IN (SELECT StringValue FROM [StarTeam].[dbo].fn_CSVToTable(@ApplicationName))
                )
    END

Это идея, выполнять условие, только если @ApplicationName и / или @ApplicationGroup имеют значение.

Я использую это в хранимой процедуре T-SQL, работающей на SQL Server 2005.

Возможно ли это каким-либо образом?

Заранее благодарен за любую помощь.

1 Ответ

2 голосов
/ 21 декабря 2011
WHERE RN = 1
    AND (
            (@ApplicationName = '' and @ApplicationGroup = '')
            or (
                    (@AppFilterType = 'Groups' AND [GroupName].[Name] IN (SELECT StringValue FROM [StarTeam].[dbo].fn_CSVToTable(@ApplicationGroup)))
                    or (@AppFilterType = 'Apps' AND [AppName].[Name] IN (SELECT StringValue FROM [StarTeam].[dbo].fn_CSVToTable(@ApplicationName)))
                )
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...