设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: yanwei82123300
打印 上一主题 下一主题

[查询] 请帮助看看我想提取"G"字母后面的空格后面的两位数字

[复制链接]
21#
发表于 2013-3-19 12:36:37 | 只看该作者
yanwei82123300 发表于 2013-3-18 15:09
COMP_DESC
MODULE,PWR G4 20-00*PED/ENG*
MODULE,PWR G5 20-00*PED/ENG*

IIf(teststr([desc],"\s+.*\s+\d+"),ReplaceMatch([desc],"(^.*\s+.*\s+)(\d+)(.*$)","$2"),"") AS 两个空格后的数字

\s+表示至少一个空格,\s+.*\s+\d+表示:一串连续的空格,接着是一些连续的字符,再接着一串连续的空格,然后接着连续几个数字字符。

点评

抄下来一字一字的再研究  发表于 2013-3-19 12:47
22#
发表于 2013-3-19 12:58:19 | 只看该作者

本帖最后由 todaynew 于 2013-3-19 15:22 编辑
roych 发表于 2013-3-15 12:15
把里面的SQL语句换成查询就是了。没必要那么麻烦。

呵呵,如果除了G以外,还可能是GC,GS(13楼的问题),或者其他什么字符呢?还有,空格是一个还是连续的多个怎么办呢?
所以问题为两个空格后的数字,不能简单的理解为G后一个空格后的数字。
这个问题除了用正则表达式解决外,其他都非好办法。这个结论是确定的。{:soso_e145:}
23#
 楼主| 发表于 2013-3-19 12:59:47 | 只看该作者
todaynew 谢谢帮助!!
24#
发表于 2013-3-19 13:17:48 | 只看该作者
查询:SELECT zqsz(Mid([desc],InStrRev([desc],' ')+1)) AS [DESC-] FROM itemdetail;

函数:
Function zqsz(ByVal csz As String)
For i = 1 To Len(csz)
    If Not IsNumeric(Mid(csz, i, 1)) Then
        zqsz = Left(csz, i - 1)
        Exit Function
    End If
Next
zqsz = csz
End Function
25#
 楼主| 发表于 2013-3-19 13:25:49 | 只看该作者
koutx 谢谢帮助!!!
26#
发表于 2013-3-19 14:28:49 | 只看该作者
学习了 这个不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-15 20:55 , Processed in 0.087572 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表