게시판에서 내용을 작성할 때 한줄띄우기 (엔터)를 입력하여 넣고

목록에서 출력하려고 할 때

한 줄 띄운것이 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

해당되는 범위 조건을 조회


WHERE [컬럼명] BETWEEN [조건절AND [조건절]


///////////////////////////////////////////////////////////

[출처] MSSQL BETWEEN 사용하기|작성자 창공


ex)

SELECT * FROM ATABLE WHERE NUM BETWEEN 1  AND 10

NUM이 1~10사이의 값일 때 조회



* 날짜 조회(몇일 부터 몇일 까지 조회) 에도 많이 사용


ex)

SELECT * FROM ATABLE WHERE RG_DT  BETWEEN '2015-12-01' AND '2015-12-10'   

(2015년 12월1일부터~2015년 12월 10일까지 조회) 

 

주의사항 = 2015-12-01 00:00:00 부터 2015-12-10 00:00:00까지만 조회되어 

12월10일 데이터가  누락 될 수 있음


해결방법

SELECT * FROM ATABLE 

WHERE CONVERT(int, CONVERT(VARCHAR(8), RG_DT , 112)) 

BETWEEN '20151201' AND '20151210' 



문자열을 받아서 일정한 영역만큼 잘라낸 후 리턴하는 함수.

SUBSTRING([컬럼명][시작위치][길이])


/////////////////////


ex)

DATE 가 '20101201' 일 때 


SUBSTRING(DATE,1,4)

는 2010이 된다.


특정 문자열을 찾아 원하는 문자열로 바꿔준다

REPLACE([컬럼명]'[변경할 문자열 패턴]''[새로운 문자열]')


/////////////////////////////////////////


ex)

SELECT count(*) as cnt

FROM INFO_TABLE

WHERE 

REPLACE(TELNO, '-', '') = REPLACE('$checkNo$', '-', '')

'공부 > SQL' 카테고리의 다른 글

(mssql) BETWEEN [범위 조건]  (0) 2015.12.15
(mssql) SUBSTRING 문자열 자르기  (0) 2015.12.09
(mssql) 행 번호 가져오기 ROW_NUMBER()  (0) 2015.12.09
(mssql) UNION ALL 쿼리 합치기  (0) 2015.12.09
(oracle) CREATE SEQUENCE  (0) 2015.10.19

행에 순서대로 번호를 붙이기 위해 사용 

ROW_NUMBER() OVER(ORDER BY 필드명)


///////////////////////////////////////

ex

SELECT AAA,

     BBB,

     CCC,

  ROW_NUMBER() OVER(ORDER BY CCC DESC) AS ROWNUM

FROM INFO_TABLE

WHERE STATE = 'N'


오라클의 rownum 과 같은 기능

'공부 > SQL' 카테고리의 다른 글

(mssql) SUBSTRING 문자열 자르기  (0) 2015.12.09
(mssql) 문자열 찾아 바꾸기 REPLACE  (0) 2015.12.09
(mssql) UNION ALL 쿼리 합치기  (0) 2015.12.09
(oracle) CREATE SEQUENCE  (0) 2015.10.19
(개념) AS구문 (Aliases)  (0) 2015.09.30

UNION이 사용된 테이블들의 쿼리 결과를 합쳐준다.


//////////////////////////////////////////////////////


ex)

SELECT * FROM atable where apple = 3

UNION ALL

SELECT * FROM btable


a테이블의 조회 결과와 b테이블의 조회결과를 합쳐준다.


쿼리문1과 쿼리문2의 컬럼수는 동일해야함

쿼리문1과 쿼리문2의 컬럼타입은 같거나 서로 변환가능한 값이어야 함

UNION ALL은 중복 허용

UNION은 중복데이터를 걸러냄

[출처] MSSQL UNION 사용하기|작성자 창공

'공부 > SQL' 카테고리의 다른 글

(mssql) SUBSTRING 문자열 자르기  (0) 2015.12.09
(mssql) 문자열 찾아 바꾸기 REPLACE  (0) 2015.12.09
(mssql) 행 번호 가져오기 ROW_NUMBER()  (0) 2015.12.09
(oracle) CREATE SEQUENCE  (0) 2015.10.19
(개념) AS구문 (Aliases)  (0) 2015.09.30

Oracle에서는 MySql에서 사용되는 Auto Increment가 없어서

시퀀스를 생성해야 한다.


create sequence autonum 

     increment by 1    <1씩 증가>

     start with 1           <1부터 시작>

     nomaxvalue        <최대값 제한이 없음>

     nocache;

---------------------------------------------------------------------------


사용시


insert into test (num)  values (autonum.nextval);


test는 사용하는 테이블

num은 컬럼명

autonum은 생성했던 시퀀스 명

.nextval 은 다음 값을 가져옴



'공부 > SQL' 카테고리의 다른 글

(mssql) SUBSTRING 문자열 자르기  (0) 2015.12.09
(mssql) 문자열 찾아 바꾸기 REPLACE  (0) 2015.12.09
(mssql) 행 번호 가져오기 ROW_NUMBER()  (0) 2015.12.09
(mssql) UNION ALL 쿼리 합치기  (0) 2015.12.09
(개념) AS구문 (Aliases)  (0) 2015.09.30

의미 : 테이블, 테이블의 열을 임시로 이름을 변경


예시 : 

SELECT *

 FROM (SELECT * FROM INFO_RECENT WHERE A = '100') AS TMP_TABLE, INFO_HIST

      WHERE TMP_TABLE.ABC = INFO_HIST.ABC

'공부 > SQL' 카테고리의 다른 글

(mssql) SUBSTRING 문자열 자르기  (0) 2015.12.09
(mssql) 문자열 찾아 바꾸기 REPLACE  (0) 2015.12.09
(mssql) 행 번호 가져오기 ROW_NUMBER()  (0) 2015.12.09
(mssql) UNION ALL 쿼리 합치기  (0) 2015.12.09
(oracle) CREATE SEQUENCE  (0) 2015.10.19

+ Recent posts