mssql 쿼리 질문입니다.

mssql 쿼리 질문입니다.

QA

mssql 쿼리 질문입니다.

본문

테이블 A에

aaa bbb ccc 라는 컬럼이 있습니다

데이터 호출 할 때

aaa1 bbb1 ccc1 aaa2 bbb2 ccc2

aaa3 bbb3 ccc3 aaa4 bbb4 ccc4

.

.

 

이런식으로 한 열에 2개씩 데이터를 가져오는 쿼리를 어떻게 짜야 할까요?

이 질문에 댓글 쓰기 :

답변 4

쿼리입니다. Primary Key : seq

 

다음의 글을 참고 하였습니다. https://stackoverflow.com/a/8673125


WITH T AS (
  SELECT
    rownum = ROW_NUMBER() OVER (ORDER BY seq),
    aaa, bbb, ccc
  FROM A
)
SELECT
  A.aaa, A.bbb, A.ccc, T.aaa, T.bbb, T.ccc
FROM A INNER JOIN T on T.rownum = A.rownum + 1
WHERE A.rownum % 2 = 1

Alias 는 있어도 되고, 없어도 되는 성격입니다.

본문에서 테이블 'A'라고 예를 들어서 그에 맞춘 것입니다.

실제 테이블 이름이 길다면..

해당 테이블의 alias 를 't1', 'a' 등드으로 주면 됩니다. 조인 조건시에는 alias 로 맞춰주어야 되고요.

WITH T AS (
  SELECT
    rownum = ROW_NUMBER() OVER (ORDER BY seq),
    aaa, bbb, ccc
  FROM A
)

에서 with() 절은 임시테이블인데 T 로 alias? 를 준 것이라고 보면 됩니다.

한열에 두개를 하려는 의도는 모르겠지만 데이터 출력후 데이터 나열방식으로 처리하는게 좋을듯 합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 126,552 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT