我有一根绳子,@mainString = 'CATCH ME IF YOU CAN'.我想检查这个词是否在ME里面@mainString.
如何在SQL中检查字符串是否具有特定的子字符串?
是否有为SQL Server 编写的SP(不PATINDEX,没有扩展LIKE,纯xp_)的正则表达式库?
(应该与共享主机一起使用)
编辑:
谢谢我知道sps,SPxp_ PATINDEXCLR`解决方案
我也知道它不是最好的地方LIKE,问题是理论:)
功能减少也被接受
我有一个包含客户帐号的数据库表.在同一个表中是与生产格式不匹配的测试帐户:例如,'A1111'是生产,但'JTest'不是.我有正则表达式只会拉我的生产帐户.我需要一个特定的编译查询来只提取生产帐户.该查询按地区和日期为我提供了客户数量; 和每个地区的概念计数:
getCustomerDistribution = CompiledQuery.Compile<DataContext, String, DateTime, IEnumerable<ServerLoad>>(
(context, region, processDate) => (from cust in context.GetTable<tbl_CustomerDistro>()
where cust.ProcessedDate.Date == processDate.Date
where cust.Region == region
where Regex.IsMatch(cust.AcctNum, ProductionMask)
group cust by new
{
cust.Region,
cust.Concept
} into custDistro
orderby custDistro.Key.Region
select new CustomerDistro
(
custDistro.Key.Region,
custDistro.Key.Concept,
custDistro
.Where(c => c.Concept == custDistro.Key.Concept)
.Select(c => c.Concept).Count()
)));
Run Code Online (Sandbox Code Playgroud)
问题是我在运行时收到以下消息:
方法'Boolean IsMatch(System.String,System.String)'没有支持的SQL转换.
我在看用户定义的函数:
static Func<striing, bool> IsProduction = (AcctNum) => Regex.IsMatch(AcctNum, ProductionMask);
Run Code Online (Sandbox Code Playgroud)
这也不起作用.我不想迭代检索到的记录以进一步过滤,除非没有其他方法可以做到这一点.
有没有办法用Predicate Builder做到这一点?
我认为另一种选择是使用:
where SqlMethods.Like (cust.AcctNum, ProductionMask)
但是,我的ProductionMask是为Regex编写的:
^[B,G]\d{4}$
Run Code Online (Sandbox Code Playgroud)
有没有办法用SqlMethods.Like(...)做到这一点? …
我只需要选择 sql 表中不包含任何数值的行,这是一个示例表:
AddressLine1
-------------
59 Prospect Road
Rose House
24 St. Pauls Place
1 Oxford Avenue
9 Stonecross Road
65 Wood Common
19 Falcon Close
Thorn House
16 Poplars Close
52 Coombes Road
12 Brinsmead
14 Meadow Close
15 Rowlatt Drive
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我只是在寻找要返回的“Rose House”和“Thorn House”行。
对我应该使用的代码的任何建议将不胜感激。
我写了这段代码(db2),它工作得很好,但我想知道,有没有更短的方法来写这个?
Select Distinct city
From station
Where city Like 'A%a'
Or city Like 'A%e'
Or city Like 'A%i'
Or city Like 'A%o'
Or city Like 'A%u'
Or city Like 'E%a'
Or city Like 'E%e'
Or city Like 'E%i'
Or city Like 'E%o'
Or city Like 'E%u'
Or city Like 'I%a'
Or city Like 'I%e'
Or city Like 'I%i'
Or city Like 'I%o'
Or city Like 'I%u'
Or city Like 'O%a'
Or city Like 'O%e'
Or city Like 'O%i'
Or city …Run Code Online (Sandbox Code Playgroud) 我有一个字符串
ADN120_XK7760069988881LJ
Run Code Online (Sandbox Code Playgroud)
在我的一个专栏中.我必须提取13位数字的数字.例如,在上面的例子中,我想7760069988881在SQL Server中提取.