Oracle SQL : regexp_substr을 사용하여 문자열의 첫 줄 반환

Bawpie

SQL 쿼리 (oracle 11)의 텍스트 상자에서 첫 번째 텍스트 줄을 반환하려고합니다. 텍스트 상자의 내용은 다음과 같습니다.

   X WITHDRAWN

   Explanation.

맨 위 줄, 즉 X WITHDRAWN을 반환하고 싶습니다. 첫 번째 줄만 보도록 지정할 수 있는지 아니면 캐리지 리턴 전에 모든 텍스트를 반환하도록 지정할 수 있는지 확실하지 않습니다. 둘 중 하나가 작동합니다.

regexp_substr을 사용해야한다고 생각하지만 구문이 확실하지 않습니다. 나는 시도했다 :

   regexp_substr(TABLE.TEXT,'^.*$')

그러나 그것은 작동하지 않았으므로 어떤 도움을 많이 주시면 감사하겠습니다!

편집 : 사용 된 솔루션 :

   select regexp_substr(TABLE.TEXT, '[^,]+['||CHR(10)||']') from tab

편집 : 내 대답에 줄 바꿈과 캐리지 리턴이 혼합되어 있음을 알았으므로 다음 솔루션을 사용하여 텍스트 만 반환하고 추가 문자는 반환하지 않았습니다.

    select 
     replace(replace(regexp_substr(TABLE.TEXT, '[^,]+['||CHR(10)||']'),CHR(10),''),CHR(13),'') 
     from tab 

편집 : @Ben의 답변에 따라 솔루션을 다음과 같이 수정했습니다.

select
initcap(replace(regexp_substr(TABLE.TEXT, '.*$', 1, 1, 'm'),CHR(13),''))
from tab

Parado의 정규식은 쉼표가 아닌 모든 항목과 캐리지 리턴을 여러 번 찾습니다. 즉, 줄 바꿈이나 텍스트에 쉼표가 있으면 작동하지 않습니다.

Oracle은 m match 매개 변수를 사용하여 여러 줄 표현식을 지원합니다 . 이 모드를 사용하면 $각 줄의 끝과 문자열의 끝을 일치시킵니다. 이것을 사용하여 단순히 표현식을 다음과 같이 대량으로 사용할 수 있습니다.

regexp_substr(str, '.*$', 1, 1, 'm')

이는 첫 번째 문자부터 계산하여 문자열의 끝이 뒤 따르는 문자열의 첫 번째 발생 (첫 번째 행)과 일치합니다.

예로서:

with strings as ( 
 select 'hi
         hi again' as str
   from dual
  union all
 select 'bye
         and again'
   from dual
        )
 select regexp_substr(str, '.*$', 1, 1, 'm')
   from strings

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Oracle SQL : 두 문자열 사이의 blob에서 문자열 반환 (아마 REGEXP_SUBSTR 사용)

분류에서Dev

Oracle SQL 정규식 RegExp_SubStr 줄 끝 (검색 텍스트의 chr (10)이 null을 반환 함)

분류에서Dev

REGEXP_SUBSTR 또는 SUBSTR 함수를 사용하여 Oracle SQL에서 "시작할 첫 번째 _ (밑줄) 이후"및 "종료 할 두 번째 _ (밑줄)"에서 하위 문자열 찾기

분류에서Dev

SQL Oracle에서 regexp_substr을 사용하여 특정 단어 뒤의 단어 가져 오기

분류에서Dev

regexp_substr을 사용하여 Oracle에서 구분 기호로 공백 및 문자로 문자열 분할

분류에서Dev

Oracle SQL : Regexp_substr

분류에서Dev

Oracle REGEXP_SUBSTR은 문자의 첫 번째 발생을 무시하지만 두 번째 발생을 포함합니다.

분류에서Dev

Oracle에서 REGEXP_SUBSTR을 사용하여 문자열에서 ID 번호 추출

분류에서Dev

REGEXP_SUBSTR을 사용하여 문자열의 일부 추출

분류에서Dev

Oracle SQL 함수 regexp_substr이 일치하는 모든 문자를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

QTextStream을 사용하여 문자열의 첫 번째 줄 읽기

분류에서Dev

Oracle 10g REGEXP_SUBSTR을 사용하여 문자열 구분 기호를 사용하여 문자열을 추출하는 방법

분류에서Dev

Oracle SQL : to_char를 사용하여 문자열의 하위 문자열을 변환하는 방법

분류에서Dev

Redshift의 REGEXP_SUBSTR 함수가 예상 값을 반환하지 않습니다.

분류에서Dev

ORACLE PL-SQL 함수를 사용하여 문자열을 분할하고 목록을 반환하는 방법

분류에서Dev

Regexp_substr의 Oracle 쿼리

분류에서Dev

Oracle SQL 만 사용하여 두 문자열의 차이를 반환하는 방법

분류에서Dev

regexp_substr을 사용하여 문자열 값과 파이프 사이에 문자열을 가져옵니다.

분류에서Dev

(SQL Server) 'character'의 첫 번째 발생 후 하위 문자열 값 반환

분류에서Dev

grep을 사용하여 패턴과 일치하는 첫 번째 줄의 모든 줄을 다른 패턴으로 반환합니다.

분류에서Dev

대괄호 사이의 숫자와 일치하는 ORACLE REGEXP_SUBSTR

분류에서Dev

map을 사용하여 다차원 배열의 첫 번째 인덱스 반환

분류에서Dev

Oracle은 oracle regexp_substr과 함께 정규식을 사용하여 json 필드를 추출합니다.

분류에서Dev

저장 프로 시저의 REGEXP_SUBSTR 함수가 null을 반환합니다.

분류에서Dev

Oracle에서 REGEXP_SUBSTR의 혼란

분류에서Dev

모든 단어의 첫 번째 문자가 소문자로 된 문자열을 반환하는 PHP

분류에서Dev

SQL Server의 조인을 사용하여 업데이트 문을 Oracle로 변환

분류에서Dev

regexp_substr을 사용하여 두 단어 사이의 모든 문자를 캡처합니다 (문자열의 앞과 끝 포함)

분류에서Dev

Oracle SQL 쿼리에서 대괄호 사이에 여러 줄이있는 문자열을 추출하는 방법

Related 관련 기사

  1. 1

    Oracle SQL : 두 문자열 사이의 blob에서 문자열 반환 (아마 REGEXP_SUBSTR 사용)

  2. 2

    Oracle SQL 정규식 RegExp_SubStr 줄 끝 (검색 텍스트의 chr (10)이 null을 반환 함)

  3. 3

    REGEXP_SUBSTR 또는 SUBSTR 함수를 사용하여 Oracle SQL에서 "시작할 첫 번째 _ (밑줄) 이후"및 "종료 할 두 번째 _ (밑줄)"에서 하위 문자열 찾기

  4. 4

    SQL Oracle에서 regexp_substr을 사용하여 특정 단어 뒤의 단어 가져 오기

  5. 5

    regexp_substr을 사용하여 Oracle에서 구분 기호로 공백 및 문자로 문자열 분할

  6. 6

    Oracle SQL : Regexp_substr

  7. 7

    Oracle REGEXP_SUBSTR은 문자의 첫 번째 발생을 무시하지만 두 번째 발생을 포함합니다.

  8. 8

    Oracle에서 REGEXP_SUBSTR을 사용하여 문자열에서 ID 번호 추출

  9. 9

    REGEXP_SUBSTR을 사용하여 문자열의 일부 추출

  10. 10

    Oracle SQL 함수 regexp_substr이 일치하는 모든 문자를 반환하지 않는 이유는 무엇입니까?

  11. 11

    QTextStream을 사용하여 문자열의 첫 번째 줄 읽기

  12. 12

    Oracle 10g REGEXP_SUBSTR을 사용하여 문자열 구분 기호를 사용하여 문자열을 추출하는 방법

  13. 13

    Oracle SQL : to_char를 사용하여 문자열의 하위 문자열을 변환하는 방법

  14. 14

    Redshift의 REGEXP_SUBSTR 함수가 예상 값을 반환하지 않습니다.

  15. 15

    ORACLE PL-SQL 함수를 사용하여 문자열을 분할하고 목록을 반환하는 방법

  16. 16

    Regexp_substr의 Oracle 쿼리

  17. 17

    Oracle SQL 만 사용하여 두 문자열의 차이를 반환하는 방법

  18. 18

    regexp_substr을 사용하여 문자열 값과 파이프 사이에 문자열을 가져옵니다.

  19. 19

    (SQL Server) 'character'의 첫 번째 발생 후 하위 문자열 값 반환

  20. 20

    grep을 사용하여 패턴과 일치하는 첫 번째 줄의 모든 줄을 다른 패턴으로 반환합니다.

  21. 21

    대괄호 사이의 숫자와 일치하는 ORACLE REGEXP_SUBSTR

  22. 22

    map을 사용하여 다차원 배열의 첫 번째 인덱스 반환

  23. 23

    Oracle은 oracle regexp_substr과 함께 정규식을 사용하여 json 필드를 추출합니다.

  24. 24

    저장 프로 시저의 REGEXP_SUBSTR 함수가 null을 반환합니다.

  25. 25

    Oracle에서 REGEXP_SUBSTR의 혼란

  26. 26

    모든 단어의 첫 번째 문자가 소문자로 된 문자열을 반환하는 PHP

  27. 27

    SQL Server의 조인을 사용하여 업데이트 문을 Oracle로 변환

  28. 28

    regexp_substr을 사용하여 두 단어 사이의 모든 문자를 캡처합니다 (문자열의 앞과 끝 포함)

  29. 29

    Oracle SQL 쿼리에서 대괄호 사이에 여러 줄이있는 문자열을 추출하는 방법

뜨겁다태그

보관