加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2008 – tsql最后一个字符串中的“发生”

发布时间:2020-12-12 16:31:18 所属栏目:MsSql教程 来源:网络整理
导读:我有字段包含逗号分隔值.我需要提取列表中的最后一个元素. 我试过这个: select list_field,LTRIM(RTRIM(right(list_field,len(list_field) - CHARINDEX(',',list_field)))) 但它返回列表的最后一部分,只是在第一个逗号出现之后开始. 例如, a,b returns b a,b
我有字段包含逗号分隔值.我需要提取列表中的最后一个元素.
我试过这个:
select list_field,LTRIM(RTRIM(right(list_field,len(list_field) - CHARINDEX(',',list_field))))

但它返回列表的最后一部分,只是在第一个逗号出现之后开始.
例如,

a,b returns b

a,b,c returns b,c

我想使用像正则表达式一样的模式.是否可能在TSQL(sql server 2008)?
任何其他线索?

解决方法

找到最后一个,通过反转字符串并寻找第一个出现,然后从字符串右侧读取许多字符;
rtrim(right(list_field,charindex(',reverse(list_field)) - 1))

(使用reverse(list_field)’,’如果在字段中有可能没有分隔符,并且您想要单个值)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读