게시판에서 내용을 작성할 때 한줄띄우기 (엔터)를 입력하여 넣고 목록에서 출력하려고 할 때 한 줄 띄운것이 html에서 안 읽혀서 한 줄 띄워지지 않고 표출 될 때가 있다. 그래서 쿼리에서 엔터를 replace 처리하여 <br>로 바꾸어 출력하였다. 우선 replace 하기 전에 알아야 될 것은 무엇을 <br>로 바꿔야 하는지 였다. 한줄띄우기는 보통 [캐리지 리턴] 과 [라인피드]로 이루어져있다. 캐리지 리턴 : \r 동일한 줄의 첫번째 자리에 커서를 위치시킴 라인피드 : \n 현재커서가 위치한 곳에서 한줄 아래로 이동 즉 엔터는 캐리지 리턴 후 라인피드를 한 것 자세한건 여기서 : http://m.blog.daum.net/chan6030/7556650 //////////////////////////// 그래서 우리는 캐리지리턴+라인피드가 합쳐진 문자를 <br>태그로 치환하면 된다. ex) REPLACE(MSSAGE,CHAR(13)+CHAR(10), '<![CDATA[<br>]]>') AS MSSAGE CHAR(13) = 캐리지 리턴 \r CHAR(10) = 라인피드 \n MSSQL에서 SMS발송업무등 부득히 문장을 줄바꿈해야하는 일이 발생한다. <해결방법: char(13),char(10)> 참고로 MSSQL 2012부터 문자열 붙이기 Concat을 지원하며 이전 버전에서는 기존 + 형식으로 처리를 해주면 된다!! ● DB 데이터에 줄 바꿈이 있을때 SQL에서 처리하는 방법 안녕하세요. 오늘은 DB 데이터 값안에 엔터, 줄바꿈 데이터가 존재 했을 때 SQL에서 처리하는 방법에 대해서 알아 보겠습니다. DB 데이터에 줄바꿈 데이터가 있을 때 데이터를 뽑게 되면 SQL 데이터 ROW값이 한 줄이 아닌 줄바꿈 되어서 많이 당황스러웠던 적이 있었을 겁니다. 이를 해결하기 위해서는 아래와 같습니다.
예를 들어 SHOPING 테이블에 MEMO 컬럼의 데이터가 있다고 가정합니다. 이때 MEMO 데이터 안에 줄바꿈 데이터 "안녕 하세요" 이러한 데이터 있을 경우 줄 바꿈되어서 데이터가 추출 되어 지는데 이를 해결하기 위해서는
chr(10) => 아스키코드로 \n 줄바꿈을 의미하며 replace 를 통해 \n 을 ''으로 치환한다. audited_changes컬럼에 아래와 같이 개행이 포함된 값을 검색하기 위해서
아래쿼리 같이 like ‘%%’ 사이에
메모
데이터의 값이 엔터가 들어간 문자를 찾기 위해서 테이블을 생성하고, 엔터가 들어가지 않은 데이터와 엔터가 들어간 데이터를 삽입하여 조회 후 엔터를 제거하는 쿼리를 나열 하겠습니다. 1. 테이블 생성
2. 데이터 생성
3. 데이터 확인
4. 엔터(ENTER) 데이터 찾기
5. 엔터(ENTER) 데이터 치환하기
5-1. 치환된 결과 확인
위 내용처럼 오라클 함수를 이용해서 엔터(ENTER)값을 치환할 수 있습니다. 사용되었던 SQL은 아래와 같습니다.
|