Sql server 2008 SQL Server正则表达式搜索

Sql 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],但没有得到想要的结果 请帮帮我。它工作正常:

我的要求是使用SQL Server
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
实现呢?按照你说的做了,但没有得到结果。可能你有不可见的字符。请看编辑后的答案。我不这么认为。没有得到任何结果,返回了零行。