我正在尝试编写下面的SQL语句或简单的过程。
列名称为nav.push(...)
,其中包含以下字符串字符:
Month
5/1/2015
6/1/2015
8/1/2015
9/1/2015
10/1/2015
11/1/2015
12/1/2015
1/1/2016
2/1/2016
3/1/2016
4/1/2016
我需要拆分两件事:
department_name
在名为First Name&Second Name [W]
的第二列中的First Name&Second Name
和department_name
列中[W]
。
我需要为数百行做这件事。 在这种情况下,过程或sql语句将如何显示? 字符串的长度和department_name中的字数不同..
答案 0 :(得分:0)
SELECT TRIM( SUBSTR( department_name, 1, INSTR( department_name, '[' ) - 1 ) )
AS department_name,
SUBSTR( department_name, INSTR( department_name, '[' ) )
AS department_code
FROM your_table;
或
SELECT REGEXP_SUBSTR( department_name, '(.*?)\s*(\[.*?\])', 1, 1, NULL, 1 )
AS department_name,
REGEXP_SUBSTR( department_name, '(.*?)\s*(\[.*?\])', 1, 1, NULL, 2 )
AS department_code
FROM your_table;
或者,如果您不想要部门代码中的括号,那么:
SELECT REGEXP_SUBSTR( department_name, '(.*?)\s*\[(.*?)\]', 1, 1, NULL, 1 )
AS department_name,
REGEXP_SUBSTR( department_name, '(.*?)\s*\[(.*?)\]', 1, 1, NULL, 2 )
AS department_code
FROM your_table;