c# - 有没有办法在 SQL Server 查询中编写正则表达式?
问题描述
我正在 SQL 服务器上运行查询。我需要获取LoginName
以给定字符串开头并以整数结尾的记录。我正在运行以下查询,但它不返回任何记录。让我知道这在 SQL 中是否不可能,所以我将在 C# 代码中处理。
SELECT * from TestTable where LoginName like 'Input[0-9]*%'
预期值:
Input
Input1
Input123
非预期值:
Inputabc
abc
<empty string>
abcInput
解决方案
有没有办法在 SQL Server 查询中编写正则表达式?
只能通过使用 CLR。没有对正则表达式的本机支持。LIKE
并PATINDEX
支持非常有限的模式匹配方言。
尽管如此,这足以获取LoginName
字符串“输入”后跟任意数量的数字(包括零位)然后是字符串结尾的行。
如下(DBFiddle 链接)
SELECT *
FROM TestTable
WHERE LoginName LIKE 'Input%'
AND SUBSTRING(LoginName, LEN('Input') + 1, 8000) NOT LIKE '%[^0-9]%'
LoginName LIKE 'Input%'
- 登录名以“输入”开头SUBSTRING(LoginName, LEN('Input') + 1, 8000) NOT LIKE '%[^0-9]%'
- "Input" 后面的子字符串不包含不在范围内的字符0-9
如果您更改要搜索的字符串,Input
请记住更新查询中的两个实例。
推荐阅读
- python - 为什么 Pytorch autograd 需要另一个向量来向后而不是计算雅可比?
- android - Firebase 手机身份验证和华为应用程序库
- r - sil.obj[, 1:3] 中的错误:剪影方法的维数不正确?
- powerapps - PowerApps 无法将集合修补为表
- cuda - CUDA Profiler 中“flop_count_sp”和“inst_fp_32”指标的含义
- mongodb - 如何使用 bson 使用 golang 更新 MongoDB 中的特定嵌套结构字段
- python - 当网络抓取链接时,Python 请求模块工作异常
- android - Kotlin 中视图的 EditText 绑定不起作用
- angular - 为什么使用 @rollup/plugin-node-resolve 时 Typescript 注释不起作用?
- php - 如何在使用 scandir() 时跳过我无权读取/访问的文件,以避免所有记录的错误?