database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41005 게시물 읽기
No. 41005
데이터 한줄 내려서 정렬하기
작성자
민식이
작성일
2015-11-16 09:25
조회수
8,974

데이터가 특정 바이트 수를 초과 하면 한줄 내려서 오른쪽 정렬이 되게 할 수 있는 방법을 문의 드립니다.

예 ) 컬럼1                                                컬럼2

       테스트 물품1                                 500,000

       테스트 물품2                                 1,000,000

       테스트 물품 신청 접수                  1,000,000,000

 

 

조회된 쿼리

         테스트 물품1                           500,000

         테스트 물품2                        1,000,000

         테스트 물품 신청 접수

                                                1,000,000,000

 

이렇게 테스트 물품 1,2 는 컬럼1과 2가 한줄에 정렬이 되고

테스트 물품 신청접수는 컬럼2가 한줄 내려가서 오른쪽 정렬이 되게 가능한지 문의 드립니다.

이 글에 대한 댓글이 총 3건 있습니다.

WITH t AS
(
SELECT 1 pk, '테스트 물품1' c1, '500,000' c2 FROM dual
UNION ALL SELECT 2, '테스트 물품2', '1,000,000' FROM dual
UNION ALL SELECT 3, '테스트 물품 신청 접수', '1,000,000,000' FROM dual
)
-- c1 30자리, c2 10자리 고정이라 가정하고
SELECT pk
     , CASE lv WHEN 1 THEN RPAD(c1, 30, ' ') || LPAD(c2, 10, ' ')
               WHEN 2 THEN RPAD(c1, 40, ' ')
               WHEN 3 THEN LPAD(c2, 40, ' ')
        END AS c3
  FROM t
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 3)
 WHERE (lv = 1 AND LENGTHB(c1) <= 30 AND LENGTHB(c2) <= 10)
    OR (lv > 1 AND (LENGTHB(c1) > 30 OR LENGTHB(c2) > 10))
 ORDER BY pk, lv
;

마농(manon94)님이 2015-11-16 14:55에 작성한 댓글입니다.

조회된 결과값이 row수가 총 4개 인데 총 조회된 row는

3개를 가지고  chr(13) chr(10)해서 엔터값을 준후 정렬 되게 하는 방법은

없나요?

민식이님이 2015-11-16 15:11에 작성한 댓글입니다. Edit

WITH t AS
(
SELECT 1 pk, '테스트 물품1' c1, '500,000' c2 FROM dual
UNION ALL SELECT 2, '테스트 물품2', '1,000,000' FROM dual
UNION ALL SELECT 3, '테스트 물품 신청 접수', '1,000,000,000' FROM dual
)
-- c1 30자리, c2 10자리 고정이라 가정하고
SELECT pk
     , CASE WHEN LENGTHB(c1) <= 30 AND LENGTHB(c2) <= 10
            THEN RPAD(c1, 30, ' ') || LPAD(c2, 10, ' ')
            ELSE RPAD(c1, 40, ' ') ||CHR(13)||CHR(10)|| LPAD(c2, 40, ' ')
        END AS c3
  FROM t
 ORDER BY pk
;

마농(manon94)님이 2015-11-16 15:17에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41009번호 질문.. [3]
김하늘
2015-11-23
8516
41008쿼리 속도 질문좀 드릴게요... (도와주십시오 ㅜㅜ) [4]
검콤이
2015-11-20
8967
41006쿼리좀 도와주세여.. 부탁드립니다. [2]
초보
2015-11-19
8708
41005데이터 한줄 내려서 정렬하기 [3]
민식이
2015-11-16
8974
41004sql connec by 문의하나 할께요. [1]
이현정
2015-11-16
8606
41002계층별 소계(조직도)를 처리할 방법이 있을까요? [2]
김민규
2015-11-13
9373
41001테이블스페이스 관련 질문 드립니다. [1]
검콤이
2015-11-10
8678
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다