sql - SQL 子字符串 charindex
问题描述
我有一个带有这样的字符串的 SQL 字段
27/08/2018 至 31/08/2018 - GCH/10561/ 201312361J /HO 04/09/2018 至 07/09/2018 - GCH/2836/202788279H/WAL
这个字符串有一个我需要提取的参考代码。上面加粗的那个。
问题是它之前的字符串并不总是相同的长度。请参见上面的第二个示例。
如何每次都提取该代码?
我试过这个,但我需要在最后一个“/”的左边.....
SELECT Right('27/08/2018 to 31/08/2018 - GCH/10561/201312361J/HO', CHARINDEX('/','27/08/2018 to 31/08/2018 - GCH/10561/201312361J/HO')-1)
我想我需要使用 asubstring
但charindex
不能让它工作。
在此先感谢您的帮助。
解决方案
这是假设 MS SQL Server:
declare @rev varchar(64)
set @rev=reverse('27/08/2018 to 31/08/2018 - GCH/10561/201312361J/HO')
SELECT
reverse(SUBSTRING ( @rev, charindex('/', @rev) + 1, charindex('/', substring(@rev, (charindex('/', @rev) + 1) + 1, Len(@rev)))));
解释:
- 首先,我们使用 reverse 反转原始字符串。
- 然后我们找到第一次出现 '/' 和下一次出现 '/' 之间的子串
- 我们再次反转字符串以找到我们的原始字符串。
推荐阅读
- c# - 如何在 google OAuth 2.0 的重定向 uri 中配置通配符或自定义域
- date - HQL:上个月的最大日期
- ios - iOS 13.5.1:UIActivityViewController 未在 iPad 上显示
- c# - 我们如何在 dropbox-api 集成中设置动态“redirect_uri”参数值?
- r - 创建地图时传单似乎在绘制随机颜色
- geolocation - 按地理位置列出元素
- xml - 在 SSISDB 中解密 XML
- python - 改组熊猫数据框
- python - Django 表单 ModelChoiceField 使用 __Str__ 或 label_for_Instance 又如何?
- java - Java 打印线程卡住了:为什么?