取决于数据的一致性-假设要在第一列与第二列中显示的内容之间用一个空格隔开:
WITH TEST_DATA AS (SELECt 'LOREM IPSUM' COLUMN_A FROM DUAL)SELECt SUBSTr(t.COLUMN_A, 1, INSTR(t.COLUMN_A, ' ')-1) AS COLUMN_A, SUBSTr(t.COLUMN_A, INSTR(t.COLUMN_A, ' ')+1) AS COLUMN_BFROM test_data T;
您还可以在REGEX中使用以下查询:
WITH TEST_DATA AS (SELECt 'LOREM IPSUM' COLUMN_A FROM DUAL)SELECt REGEXP_SUBSTr(t.COLUMN_A, '[^ ]+', 1, 1) COLUMN_A, REGEXP_SUBSTr(t.COLUMN_A, '[^ ]+', 1, 2) COLUMN_BFROM test_data T;
Oracle 10g +具有正则表达式支持,根据您需要解决的情况提供更大的灵活性。它也有一个正则表达式子字符串方法…
编辑: 3字分割:
WITH TEST_DATA AS (SELECt 'LOREM IPSUM DIMSUM' COLUMN_A FROM DUAL) SELECt REGEXP_SUBSTr(t.COLUMN_A, '[^ ]+', 1, 1) COLUMN_A, REGEXP_SUBSTr(t.COLUMN_A, '[^ ]+', 1, 2) COLUMN_B, REGEXP_SUBSTr(t.COLUMN_A, '[^ ]+', 2, 3) COLUMN_C FROM test_data T;
参考:
- SUBSTR
- 仪器



