簡體   English   中英

如何從逗號分隔的字符串中提取前兩個值

[英]How extract first two values from a comma separated string

我需要從逗號分隔的字符串中提取前兩個值,並使用regexp_substr函數將其存儲在數組變量中。

字符串看起來像'aaa,bbb,ccc,ddd,eee'

我需要'aaa'和'bbb'存儲到數組(嵌套表)中。

請幫助如何實現這一目標。

這樣的事,也許嗎?

DECLARE 

TYPE dtype  IS TABLE OF VARCHAR2(10);
x dtype := dtype();
s VARCHAR2(100) := 'aaa,bbb,ccc,ddd,eee';
BEGIN
   x.extend(2);
   x(1) := REGEXP_SUBSTR(s,'[^,]+', 1,1) ;
   x(2) := REGEXP_SUBSTR(s,'[^,]+', 1,2) ;

  DBMS_OUTPUT.PUT_LINE(x(1));
  DBMS_OUTPUT.PUT_LINE(x(2));

END;
/

aaa
bbb
CREATE TABLE Table1
    (name varchar(23))
;

INSERT INTO Table1
    (name)
VALUES
    ('aaa,bbb,ccc,ddd,eee')
;
SELECT SUBSTR(name, 1, Instr(name, ',', 1, 1) -1) AS part1,
       SUBSTR(name, Instr(name, ',') + 1, 
              Instr(name, ',', 1, 2) - Instr(name, ',') - 1) AS part_2
FROM Table1

輸出量

PART1   PART_2
aaa     bbb

現場演示

http://sqlfiddle.com/#!4/2840fd/31

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM