글의 내용중 첫번째 줄만 조회해올수 있을까요? 7

by 환상의딸기 [SQL Query] [2016.12.26 11:31:06]


안녕하세요

궁금한 내용이 있어서 문의드립니다.

데이터가 아래와 같은 형태로 저장되어 있을때 첫번째 줄만 조회해오고 싶어서 그러는데요

 

"1번째 행입니다.

2번째 행입니다.

3번째 행입니다."

 

A라는 컬럼에 위와 같이 데이터가 들어가있을때 "1번째 행입니다." 이부분만 조회해오고 싶은데 어떻게 쿼리를

짜야할지 문의드립니다.

혹시 방법이 있을까요?

 

by jkson [2016.12.26 11:44:11]
with t as 
(
select '1번째 행입니다.
2번째 행입니다.
3번째 행입니다.' txt from dual
)
select substr(txt,1,instr(txt,chr(10))-1) from t

 


by 환상의딸기 [2016.12.26 11:56:11]

감사합니다.ㅎㅎ 잘되네요 ㅎ


by jkson [2016.12.26 12:16:17]

한줄 짜리만 있는 데이터는 생각을 안 했네요;

select substr(txt,1,least(instr(txt,chr(10)),length(txt))-1) from t

 


by 우리집아찌 [2016.12.26 12:55:42]

regexp_substr( txt , '[0-9]번째 행입니다' , 1 , 1) 


by 마농 [2016.12.26 13:30:11]

REGEXP_SUBSTR(txt, '.+')


by jkson [2016.12.26 16:09:26]

아 정규식에서 . 가 개행문자는 포함 안 시키나보네요?


by jkson [2017.01.11 18:39:43]

참고하시라고..

with t as
(
select '1번째 행입니다.
2번째 행입니다.
3번째 행입니다.' txt from dual
)
select REGEXP_SUBSTR(txt, '.+',1,1,'n') from t--안 먹힘. 기본적으로 정규식은 멀티라인 인식 안함. 인식하게 'n' 해줘야 함.

regexp_substr(source_char, pattern, position, match_param, subexpr)

match_param
i - 대소문자 구분 안 함
c - 대소문자 구분함
n - 개행문자까지 포함
m - 스트링을 멀티라인으로 인식
x - 스페이스 무시

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입