2010-08-04 153 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