相关疑难解决方法(0)

使用存储过程检查字符串是否包含SQL Server 2005中的子字符串

我有一根绳子,@mainString = 'CATCH ME IF YOU CAN'.我想检查这个词是否在ME里面@mainString.

如何在SQL中检查字符串是否具有特定的子字符串?

t-sql sql-server string stored-procedures sql-server-2005

231
推荐指数
2
解决办法
63万
查看次数

T-SQL中的SQL Server正则表达式

是否有为SQL Server 编写的SP(不PATINDEX,没有扩展LIKE,纯xp_)的正则表达式库?

(应该与共享主机一起使用)

编辑:

  • 谢谢我知道sps,SPxp_ PATINDEXCLR`解决方案

  • 我也知道它不是最好的地方LIKE,问题是理论:)

  • 功能减少也被接受

regex t-sql sql-server

122
推荐指数
5
解决办法
15万
查看次数

如何在LINQ-to-SQL中模拟正则表达式

我有一个包含客户帐号的数据库表.在同一个表中是与生产格式不匹配的测试帐户:例如,'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(...)做到这一点? …

c# regex linq-to-sql

12
推荐指数
3
解决办法
1万
查看次数

选择 SQL 非数字值

我只需要选择 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”行。

对我应该使用的代码的任何建议将不胜感激。

sql-server

6
推荐指数
2
解决办法
2万
查看次数

SQL 查询城市名称以元音开头和结尾

我写了这段代码(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)

sql

5
推荐指数
2
解决办法
7905
查看次数

从SQL Server中的字符串中提取多个特定长度

我有一个字符串

ADN120_XK7760069988881LJ 
Run Code Online (Sandbox Code Playgroud)

在我的一个专栏中.我必须提取13位数字的数字.例如,在上面的例子中,我想7760069988881在SQL Server中提取.

sql sql-server

2
推荐指数
1
解决办法
867
查看次数