大家好,欢迎来到IT知识分享网。
例如一个文件列表:
E:\Nginx\nginx\trunk\src\core\nginx.c
E:\Nginx\nginx\trunk\src\http\ngx_http.c
E:\Nginx\nginx\trunk\src\os\win32\ngx_os.h
E:\Nginx\nginx\branches\stable-1.2\src\core\nginx.h
E:\Nginx\nginx\trunk\src\core\ngx_buf.c
现在需要截取文件名。
多么希望有一个LASTINDEXOF或者RIGHTFIND之类的函数可以直接用啊,可惜。。只好想歪门邪道了:
RIGHT(A1, LEN(A1)-FIND(“*”, SUBSTITUTE(A1, “\”, “*”, LEN(A1)-LEN(SUBSTITUTE(A1,”\”,””)))))
注:字符串长度减掉把“\”去掉的字符串长度,等于“\”个数,也就是最后一个“\”的位置。
另一个同事直接在SQLServer中使用SQL语句截取的,思路也很奇葩:
SELECT REVERSE
(
SUBSTRING(
REVERSE(B),
CHARINDEX(‘.’,REVERSE(B))+1 ,
CHARINDEX(‘\’,REVERSE(B))-CHARINDEX(‘.’,REVERSE(B))-1
)
) FROM C
注:先反转,找到第一个“\”左侧的子串,再反转。不过在其他数据库下不能用,比较可惜。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25094.html