我已将数据导入SQL Developer,并且需要将数据从一列分离到新列中。例如,我有:
Temp_Title
Congo (1995)
Nadja (1993)
我需要将标题中的年份删除到名为temp_year
的新列中。有人告诉我可以使用“解析”,但是我不确定从哪里开始。任何帮助将不胜感激。
答案 0 :(得分:0)
您没有指定要使用的数据库;另外,您提到了“ SQL Developer”(由Oracle设计),但是用“ plsqldeveloper”标签标记了该问题,因此-实际查询可能取决于,而您没有与我们分享某些信息。
无论如何,这是一个入门示例,该示例(基于Oracle)使用两个选项:
SUBSTR
+ INSTR
组合。
SQL> with test (temp_title) as
2 (select 'Congo (1995)' from dual union all
3 select 'Nadja (1993)' from dual union all
4 select 'Back to the future (1985)' from dual
5 )
6 select
7 substr(temp_title, 1, instr(temp_title, '(') - 1) title,
8 substr(temp_title, instr(temp_title, '(') + 1, 4) year,
9 --
10 regexp_substr(temp_title, '(\w| )+') title2,
11 rtrim(regexp_substr(temp_title, '\d+\)$'), ')') year2
12 from test;
TITLE YEAR TITLE2 YEAR2
-------------------- ---------------- -------------------- -----
Congo 1995 Congo 1995
Nadja 1993 Nadja 1993
Back to the future 1985 Back to the future 1985
SQL>