如何在字符串中查找字符串并打印出来?

时间:2017-02-21 11:55:20

标签: string oracle

如何在字符串中打印字符串? 我有像这样的行数据

CITY_NAME ABCDE / DEF / Report_names /的名称

现在我想只打印在report_names之后的字符串

  1. Abcde / def长度可能因线而异。
  2. Report_names / names是标准命名格式。
  3. 所以我想只打印/ report_names /
  4. 之后出现的文字

1 个答案:

答案 0 :(得分:1)

对于像这样的简单练习,最好学习,然后使用标准字符串函数INSTRSUBSTRinstr会在较长的字符串中找到您要搜索的子字符串的第一个字母的位置。因此,如果您搜索'Report_names/',您会找到R的位置。 "姓名"的第一个字母是右边的13个位置。这将是实际想要的子字符串的第一个字母,即"名称"。有了这个,你应该能够理解下面的查询:

-- begin TEST DATA (not part of the solution to the problem)
with
     test_data ( str ) as (
       select 'City_name Abcde/def/Report_names/Ann, Helen, Mary' from dual
     )
-- end of TEST DATA; SQL query begins BELOW THIS LINE 
-- use your actual table and column names instead of "test_data" and "str"
select str, substr( str, instr(str, 'Report_names/') + 13 ) as names
from   test_data
;

STR                                                 NAMES
-------------------------------------------------   --------------------
City_name Abcde/def/Report_names/Ann, Helen, Mary   Ann, Helen, Mary

1 row selected.