|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
数据库技术
→
『 VFP论坛 』
→ SQLSERVER 如何从右边取特定字符之后的字符
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
2423
人关注过本帖
标题:
SQLSERVER 如何从右边取特定字符之后的字符
取消只看楼主
加入收藏
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
结帖率:
76.47%
楼主
收藏
已结贴
√
问题点数:20 回复次数:7
SQLSERVER 如何从右边取特定字符之后的字符
比如:"F/G/R/E/T/E/S/T/",如何取出右边第一个/前的T字符?字符值是未知的,不确定,只能以特定分隔符/为依据!
总的字符串长度不固定,分隔符内的字符个数也不固定(比如这里的T可能是TT或者TA等等),不变的只有‘/’,只能用sqlserve ……
[此贴子已经被作者于2021-4-29 12:42编辑过]
搜索更多相关主题的帖子:
SQLSERVER
字符
固定
个数
特定
2021-04-29 11:06
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
2
楼
收藏
得分:0
长度不固定,分隔符内的字符个数也不固定,不变的只有‘/’,只能用sqlserve ……
2021-04-29 12:22
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
3
楼
收藏
得分:0
以下是引用
mywisdom88
在2021-4-29 12:26:53的发言:
这样不就出来了吗
a1 = "F/G/R/E/T/E/S/T/"
?substr(a1,rat("/",a1)-1,1)
只能用sqlserve
2021-04-29 12:40
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
4
楼
收藏
得分:0
以下是引用
mywisdom88
在2021-4-29 12:48:20的发言:
declare @a1 varchar(20),@a2 varchar(20)
set @a1 = 'F/G/R/E/T/E/S/T/'
set @a2 = '/T/S/E/T/R/G/F'
-- reverse()是把字符串倒置,reverse(a1)后,就是 a2
select substring(reverse(@a1),2,1)
F、G、R、E等都是变量,不确定位数,不确定内容
2021-04-29 12:55
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
5
楼
收藏
得分:0
以下是引用
mywisdom88
在2021-4-29 13:24:38的发言:
那就改为
select substring(reverse(@a1),2,charindex('/',reverse(@a1),2) - 1)
我没测试,也可能是
select substring(reverse(@a1),2,charindex('/',reverse(@a1),2) - 2)
你自己测试一下
这样:select reverse(substring(reverse(@a1),2,charindex('/',reverse(@a1),2) - 2))
我的复杂了:select reverse(left(right(Reverse(@a1),LEN(@a1)-1),charindex('/',right(Reverse(@a1),LEN(@a1)-1))-1))
[此贴子已经被作者于2021-5-3 20:35编辑过]
2021-04-29 14:12
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
6
楼
收藏
得分:0
回复 14楼 mywisdom88
就取一个字段的最后一个分隔符后的一组字符串。多谢!
2021-04-29 22:07
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
7
楼
收藏
得分:0
因为sqlserver没有从右边定位字符的函数,这里的思路主要是字符串反转,取值后再反转回来即可。
2021-04-30 14:13
举报帖子
使用道具
赠送鲜花
radiofan
等 级:
贵宾
威 望:
11
帖 子:466
专家分:696
注 册:2006-7-30
第
8
楼
收藏
得分:0
以下是引用
mywisdom88
在2021-4-29 20:32:17的发言:
如果是表1(字段1,字段2),其中,字段1,是楼主的问题。那就
select 字段1,字段2,substring(reverse(字段1),2,charindex('/',reverse(字段1),2) - 2) as 取数 from 表1
需要再reverse转回来 !
2021-05-03 20:37
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
SQLSERVER 如何从右边取特定字符之后的字符
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.027435 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved