我一直试图解决这个问题,但尚未找到解决方案。
我正在寻找一种方法,使用SQL命令在字符串中搜索2个点之间的字母数字。
例如表格中的数据集显示:
--- ---添加 的
我正在搜索的编号顺序如下
A=[a-z,A-Z]
#=[0-9]
X=[a-z,A-Z,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向后兼容),以搜索特定数据的巨大(在Excel方面)数据表。
非常感谢任何帮助或指示。
答案 0 :(得分:0)
你能这样做吗?
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子句的第二个条件返回字符串中的第一个数字。
http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/extracting-numbers-with-sql-server
答案 1 :(得分:0)
感谢评论的所有人和用户1845791,我能够找到原始问题的解决方案。
因此,使用Excel和JET 4.0在基于条件的列数据集中搜索范围。
<强> SOLUTION:强>
SELECT *
FROM test
WHERE Document MyList LIKE '%-C0[2-5]%'
的有用资源