2010-08-04 151 views
3

如何使用LIKECASE声明中,我已经得到了这个示例脚本,但不起作用。我使用MS SQL 2008在CASE语句中使用LIKE

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

你想做一个不区分大小写的比较或者'DBa *'吗?在最后一种情况下,您需要在最后添加'%'... – 2010-08-04 08:07:59

回答

9

要使用LIKE我认为你需要使用这种形式的CASE声明(“被搜索”的形式)。 “简单”形式allows only an equality check

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 
+0

感谢您的帮助 – GibboK 2010-08-04 08:27:10