gpt4 book ai didi

asp.net - 对 Access 数据库中带有字母后缀的数字进行排序

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:36 25 4
gpt4 key购买 nike

我正在尝试使用 OleDbConnection 从 Access 数据库中检索一些信息。我正在尝试按包含一组字符串格式数字的列对结果进行排序。

我希望结果按自然顺序排列(例如 1、2、10、20 与 1、10、2、20),因此我将感兴趣的列中的数据转换为整数并对结果进行排序。

"SELECT Drawing, Sheet FROM TableName ORDER BY CINT(Sheet) ASC"

这很好用,除非在某些情况下表数据的值带有字母后缀(例如 1A、2B 等)。对于这些情况,上面的命令显然失败了。

我希望结果按这样排序:1、2、2A、2B、3、3A 等等...

那么,如何解决这个问题呢?我看过一些使用 REGEXP 和一些条件语句的示例,但显然 MS SQL 不支持 REGEXP。所以我卡住了。将不胜感激。

最佳答案

无法在从 Access session 外部运行的查询中使用正则表达式。如果查询在 Access session 中运行,它可以使用带有 RegExp 的自定义 VBA 函数。但是对于这种情况,正则表达式方法似乎有点过分了。您只需使用 Val() 即可获得所需内容。

Val Function将从您的字符串中的数字返回一个数字。当它遇到一个字母时,它将停止读取字符串。

这是立即窗口中的示例。

? Val("2A")
2

像这样在你的查询中使用它......

SELECT Drawing, Sheet
FROM TableName
ORDER BY Val(Sheet), Sheet;

关于asp.net - 对 Access 数据库中带有字母后缀的数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19036097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com