【发布时间】:2019-03-13 00:37:53
【问题描述】:
在某种情况下需要帮助,我需要从包含字符串的列中提取特定值。字符串因不同的记录而异,但我需要提取的值总是以单词“VERSION”开头
我尝试使用 REVERSE & SUBSTRING 但无法获得准确的结果。任何帮助将不胜感激
表格是这样的
这是我解决问题的尝试
SELECT DISTINCT A.USER_ID,USER_AGNT_STR,
REVERSE(
SUBSTRING(
REVERSE(SUBSTRING(USER_AGNT_STR,20,PATINDEX('%VERSION%',USER_AGNT_STR))),
4,
PATINDEX('%.%',REVERSE(SUBSTRING(USER_AGNT_STR,5,PATINDEX('%VERSION%',USER_AGNT_STR)))))
) AS APP_VERSION
FROM TABLE A
WHERE USER_AGNT_STR LIKE '%VERSION%'
GROUP BY A.USER_ID,A.USER_AGNT_STR
我希望我的结果看起来像
USER ID APP_VERSION
1 2.3.1
2 2.3
5 2.1
6 2.1
7 2.3.1
9 2.3
10 2.3
【问题讨论】:
-
你想要什么结果?
-
如果您以他们可以剪切和粘贴的方式发布数据以供测试,那么人们可以更轻松地为您提供帮助。事实上,如果您可以使用临时表设置数据,那么您将获得更多帮助。
标签: sql sql-server string tsql select