第二次出现字符后SQL选择字符串

时间:2015-03-04 09:51:38

标签: mysql sql

我正在选择4列数据:

HES_CODE_COMBINATIONS.ANALYSIS_CODE_1,
HES_CODE_COMBINATIONS.ANALYSIS_CODE_7,
HES_CODE_COMBINATIONS.ANALYSIS_CODE_8, 
HES_CODE_COMBINATIONS.DESCRIPTION

我想修剪说明栏

(**HES_CODE_COMBINATIONS.DESCRIPTION**) 

仅在第二次出现"."(句号)后保留文本字符串

E.g。来自:

研究(R代码)。其他收入项目。细胞DNA修复机制的缺陷〜01/09/14 - 31/08/16

仅检索:

细胞DNA修复机制的缺陷〜01/09/14 - 31/08/16

由于

3 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,但它很有用,这应该有用

SELECT SUBSTRING(DESCRIPTION, LENGTH(SUBSTRING_INDEX(DESCRIPTION, '.', 2)) + 2) FROM HES_CODE_COMBINATIONS;

SUBSTRING_INDEX2)中的第三个参数是您想要的出现次数。

答案 1 :(得分:-1)

试试这个

SELECT substring_index(your_column, '.', -1) FROM test_table

这将匹配从右到第一次出现'。'的字符串。 (从右边开始)

这将在第二次出现'。'后匹配字符串。

SELECT substring(your_column from length(substring_index(your_column, '.', 2))+2) FROM test_table

答案 2 :(得分:-1)

试试这个: -

DECLARE @stringvalue VARCHAR(MAX) = 'Research (R Codes).Other Income Projects.Defects in cellular DNA repair mechanisms ~ 01/09/14 - 31/08/16' 
SELECT SUBSTRING( @stringvalue, LENGTH(SUBSTRING_INDEX( @stringvalue,'.',2))+2,LENGTH( @stringvalue));

我希望这可以帮到你。