t SQL中是否有变量开始或包含?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我正在尝试检测服务器是否正在运行Express Edition。

我有以下t SQL。

DECLARE @edition varchar(50); 
set @edition = cast((select SERVERPROPERTY ('edition')) as varchar)

print @edition

就我而言,@edition = Express Edition (64-bit)

我怎样才能做到以下几点呢?(C#启发)。

DECLARE @isExpress bit;
set @isExpress = @edition.StartsWith('Express Edition');
提问于
用户回答回答于

StartsWithleft(@edition, 15) = 'Express Edition'charindex('Express Edition', @edition) = 1...

Containscharindex('Express Edition', @edition) >= 1

例子:

使用left

set @isExpress = case when left(@edition, 15) = 'Express Edition' then 1 else 0 end

或者从SQLServer 2012开始,可以使用iif

set @isExpress = iif(left(@edition, 15) = 'Express Edition', 1, 0);

或使用charindex

set @isExpress = iif(charindex('Express Edition', @edition) = 1, 1, 0);
用户回答回答于

It seems like what you want is ......

在您的示例中,它将是(以)开始:

set @isExpress = (CharIndex('Express Edition', @edition) = 1)

或包含

set @isExpress = (CharIndex('Express Edition', @edition) >= 1)

扫码关注云+社区