【发布时间】:2013-05-03 13:54:09
【问题描述】:
我正在尝试匹配此 SQL 语句上的 BETWEEN RANGE,如下所示:
( WAEXD8 BETWEEN &WAEXD8 AND &WAEXD8 )
上述 SQL 语句适用于 DBS 数据源,虽然通过 ODBC 驱动程序对 iSeries 连接有效,但该 DB 连接类型不适用于 ADO.NET。 ASP.NET ADO 连接需要将 BETWEEN RANGE 替换为以下语法
date(digits(FIELDNAME) CONCAT '000000') <= current date and date(digits(FIELDNAME) CONCAT '000000') >= current date
WHERE FIELDNAME 是原始 SQL 语句中的 WAEXD8 列...
我已经尝试过,但到目前为止还没有接近这个问题的真正解决方案......
再次,我希望将原始 SQL 查询的 ASP.NET C# 正则表达式匹配/替换为替换字符串,同时保留原始列名。这可能吗?什么是模式或模式示例,我可以这样做?
其他可能的解决方案:
匹配(任意数量的空格,BETWEEN 和 HTML Entity &amp; )
例如:([(])|([BETWEEN])*([0-9A-Za-z])*([)])
【问题讨论】:
-
也许没有别的办法,但你确定需要使用正则表达式来做到这一点吗?请记住:Regular Expressions: Now You Have Two Problems
-
原始查询不是从源头“只读”的另一种方式,我正在尝试提供一种自动化的清理方法。
-
这通常不是我的方法,因为我并没有真正做正则表达式模式匹配替换。通常,我会重写查询本身或构建一个正确查询数据的过程,而无需使用花哨的技巧来规范化查询语法。