Sql server 2008 SQL Server正则表达式搜索
我的要求是使用SQL ServerSql server 2008 SQL Server正则表达式搜索,sql-server-2008,Sql Server 2008,我的要求是使用SQL Serverregex搜索类似“以C开头,后跟四个连续数字”的列值 假设我的表格包含以下数据: Id Num --- ---- 1 C1234 2 C23215 3 C4321 XYZ 4 Z1234 5 C4521 查询将只得到结果C1234和C4521 我尝试了这个select*from Mytable,其中Num类似于'c[0-9][0-9][0-9][0-9][0-9],但没有得到想要的结果 请帮帮我。它工作正常:
regex
搜索类似“以C开头,后跟四个连续数字”的列值
假设我的表格包含以下数据:
Id Num
--- ----
1 C1234
2 C23215
3 C4321 XYZ
4 Z1234
5 C4521
查询将只得到结果C1234和C4521
我尝试了这个select*from Mytable,其中Num类似于'c[0-9][0-9][0-9][0-9][0-9]
,但没有得到想要的结果
请帮帮我。它工作正常:
DECLARE @t TABLE ( Id INT, Num VARCHAR(MAX) )
INSERT INTO @t
VALUES ( 1, 'C1234' ),
( 2, 'C23215' ),
( 3, 'C4321 XYZ' ),
( 4, 'Z1234' ),
( 5, 'C4521' )
SELECT *
FROM @t
WHERE Num LIKE 'c[0-9][0-9][0-9][0-9]'
输出:
Id Num
1 C1234
5 C4521
问题可能是您正在使用区分大小写的排序规则,或者
c
来自另一种语言的字母表,或者字符串中有一些不可见的字符。尝试更改为大写C
并选择len(Num)
以查看C1234
的长度是否为5。sql server不支持正则表达式。它是patindex。好的,那么如何使用patindex
实现呢?按照你说的做了,但没有得到结果。可能你有不可见的字符。请看编辑后的答案。我不这么认为。没有得到任何结果,返回了零行。