sql-server - 选择分隔字符串字段的子集
问题描述
我的表有一个数据格式如下的字段:
Term 1~Term 2~Term 3~Term 4~Term 5~Term 6~
所有非空值都包含 6 个波浪号分隔的字符串,可能有几个单词长。
我需要从该字段中提取最后 2 个子字符串作为查询的一部分。
我对将数据拆分为多条记录不感兴趣,并且我没有创建存储过程的权限。
提前感谢您的任何建议。
解决方案
声明 @Term VARCHAR(100)
SELECT @Term = 'abc~def~ghi~jkl~mno~pqr~'
SELECT RIGHT(@Term, CHARINDEX('~',REVERSE(@Term),CHARINDEX('~',REVERSE(@Term),2)+1)-1)
这将使最后两个术语保持 ~ 完整。请注意,您可以将 REPLACE() 包裹在其中,以在其中放置波浪号以外的其他内容。
推荐阅读
- html - 在任何情况下如何在页面底部添加页脚?
- docker - docker 中的伪分布式 hadoop dfs。从本地计算机连接到 dfs 时出现问题
- react-native - 映射到元素数组时的 RN 奇怪的样式行为
- python - 将打印输出写入 csv selenium
- java - swagger-maven-plugin v3 中没有描述文件
- apache-kafka - 检索 Kafka Producer 配置
- javascript - 引用在函数范围内创建并稍后与 HTML 元素相关的对象的最优雅方式是什么?
- python-3.x - 熊猫找呼叫中心经理所在区域
- assembly - 在汇编中从 BMP 文件制作视频
- java - 如何在ajax请求中编码参数?