我需要使用 sqlserver 实现模式匹配...
这些是以下条件-
- 单词的第一个字母应以字符开头。2.可以是大写或小写 3.第一个字符后面的字符可以是数字 1-9 或任何有效字符或下划线..
基本上我需要在sqlserver中实现这个正则表达式逻辑
'/^[a-zA-Z][a-zA-Z0-9_]*$/
我相信这会奏效
IE;
select var_1 from table_1 where var_1 like [az] 但不确定是否可以实现所有逻辑
我需要使用 sqlserver 实现模式匹配...
这些是以下条件-
基本上我需要在sqlserver中实现这个正则表达式逻辑
'/^[a-zA-Z][a-zA-Z0-9_]*$/
我相信这会奏效
IE;
select var_1 from table_1 where var_1 like [az] 但不确定是否可以实现所有逻辑
对于正则表达式 /^[a-zA-Z][a-zA-Z0-9_].*$/:
WHERE somecolumn LIKE '[a-Z][a-Z0-9_]%' -- column
WHERE @somecolumn LIKE '[a-Z][a-Z0-9_]%' -- variable
IE
select var_1 from table_1 where var_1 like '[a-Z][a-Z0-9_]%'
仅供参考,除非您更改了默认值,否则大多数 SQL Server 数据库都不会区分大小写。因此,LIKE 范围 [az] 将包括所有字母,无论大写还是小写。单数字符 % 匹配零到任意数量的字符。
字符串的开头(^
在 RegExp 中)是隐含的,因为 LIKE 模式没有以 % 为前缀。
对于正则表达式 /^[a-zA-Z][a-zA-Z0-9_]*$/:
使用T I
's 评论中的模式,即
WHERE var_1 LIKE '[a-Z]%' AND NOT var_1 LIKE '%[^a-Z0-9_]%'
第一部分确保第一个字符是字母;第二部分通过排除 ( ) 确保在任何位置(包括第一个),唯一有效的字符是字母数字或下划线^
。