代码之家  ›  专栏  ›  技术社区  ›  GibboK

在CASE语句中使用LIKE

  •  3
  • GibboK  · 技术社区  · 14 年前

    LIKE 在里面 CASE

    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 回复  |  直到 13 年前
        1
  •  9
  •   Martin Smith    14 年前

    使用 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