SQL在不同条件下searchstring以获得数字

我一直在尝试这个问题一段时间,还没有find解决办法。

我正在寻找一种方法使用SQL命令来searchstring之间的2个点之间的字母数字数字。

例如表中的数据集显示:

– -添加 – –
我正在search的编号顺序如下

A=[az,AZ] #=[0-9] X=[az,AZ,0-9] or can be missing AA###XX-XX-A##-####-###-X 

——

[MyList]列示例
更新示例

 AA123A-ZT-A01-2222 AB2121A-JR-A02-22222 AA2138A-AD-A03-222 .... AA3174A-KV-C01-22222 AA762A-AS-C02-2222 AA317AA-WG-C03-22222 AA576A-BB-C04-2222 AA345A-SG-C05-22222 AA862A-ER-C06-2222 AA9871A-HD-A07-22222 .... 

我需要帮助的是做到这一点:

SELECT * FROM test WHERE MyList BETWEEN '-C02' AND '-C05'

我最初尝试了LIKE和BETWEEN的组合。 我已经尝试了几种不同的方法,仍然没有运气。

我正在使用的SQL是Microsoft JET OLEDB 4.0。 最终,这将在Excel 2007中使用(但需要与2003年后向兼容),以search特定数据的巨大(Excel方面)数据表。

任何帮助或方向将不胜感激。

你能做这个吗?

 SELECT * FROM test WHERE MyList LIKE '%-C%' AND LEFT(SUBSTRING(MyList, PATINDEX('%[0-9.]%', MyList), 50), PATINDEX('%[^0-9.]%', SUBSTRING(MyList, PATINDEX('%[0-9.]%', MyList), 50) + 'X')-1) BETWEEN '01' AND '05' 

where子句的第二个条件返回string中的第一个数字。

http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/extracting-numbers-with-sql-server

感谢大家的评论和user1845791我能find我原来的问题的解决scheme。

因此,使用Excel和JET 4.0,根据标准在列数据集内search范围。

解:

 SELECT * FROM test WHERE Document MyList LIKE '%-C0[2-5]%' 

Microsoft开发人员中心提供有用的资源