我正在嘗試爲以下代碼編寫SQL語句或簡單的過程。 有列名:department_name
包含以下字符串的字符:將字符串拆分爲2列Oracle
First Name&Second Name [W]
我需要拆分兩件事情: 在一列在第二列名爲department_name
和[W]
First Name&Second Name
稱爲department_code
。
我需要做幾百行。 在這種情況下,過程或sql語句將如何顯示? 長度字符串和部門名稱不同的字數的..
我正在嘗試爲以下代碼編寫SQL語句或簡單的過程。 有列名:department_name
包含以下字符串的字符:將字符串拆分爲2列Oracle
First Name&Second Name [W]
我需要拆分兩件事情: 在一列在第二列名爲department_name
和[W]
First Name&Second Name
稱爲department_code
。
我需要做幾百行。 在這種情況下,過程或sql語句將如何顯示? 長度字符串和部門名稱不同的字數的..
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;
如果department_code顯示爲[104],您希望第二列顯示** [104] **(帶方括號)還是僅顯示** 104 **? – mathguy
我只需要104 – m4ndy