Использование LIKE в операторах CASE - PullRequest
3 голосов
/ 04 августа 2010

как использовать LIKE в операторе CASE, у меня есть этот пример сценария, но он не работает.Я использую MS SQL 2008

DECLARE
    @DataBaseName sysname,
    @Message char(255)

SET @DataBaseName = 'DBa';

SET @Message =
    CASE @DataBaseName 
        WHEN LIKE 'DBa'
        THEN 'Valid name'
    ELSE 'INVALID name'
    END
Print @Message;

1 Ответ

9 голосов
/ 04 августа 2010

Чтобы использовать LIKE Я думаю, вам нужно использовать эту форму заявления CASE ("искомая" форма).«Простая» форма допускает только проверку на равенство .

SET @Message =
    CASE  
        WHEN @DataBaseName LIKE 'DBa' /*As Yves points out in the comments
                                        should this be 
        WHEN @DataBaseName LIKE 'DBa%' COLLATE SQL_Latin1_General_CP1_CS_AS  */
        THEN 'Valid name'
    ELSE 'INVALID name'
    END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...