同一情况下的两个条件,其中一个检查SQL Server 2012中是否包含子字符串

时间:2017-03-30 14:31:32

标签: sql-server conditional case

我的.NET项目中有一个部署后脚本。

在部署时,我想根据某些条件更新一些行。

这是我到目前为止所做的:

DECLARE @BRANDS NVARCHAR(500) = 'http://example.com/';

UPDATE [ServiceVersion]
SET [ExternalUrl] as = CASE 
        WHEN (
                SELECT [ExternalUrl]
                FROM [ServiceVersion]
                WHERE [GatewayPath] = '/proxy/brands'
                ) != @BRANDS
            THEN @BRANDS
        END
WHERE [GatewayPath] = '/proxy/brands'

如果行不等于我的变量,则更新它。否则它什么都不做。

我想做的不仅仅是添加另一个条件,比如x!= BRAND&& string不包含“abc”更新。

但是如何在检查子字符串的CASE中添加另一个条件?

1 个答案:

答案 0 :(得分:1)

试试这个......

DECLARE @BRANDS NVARCHAR(500) = 'http://example.com/';

UPDATE [ServiceVersion]
SET [ExternalUrl] = @BRANDS         
WHERE
      [ExternalUrl] != @BRANDS 
      AND [ExternalUrl] not like '%abc%'
      AND [GatewayPath] = '/proxy/brands'

希望这有帮助!