Background Image

FORUM

조회 수 11287 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window8 Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
CUBRID Manager 9.3.6.003  (64bit)
응용 환경(API)
java

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

안녕하세요. 쿼리 작성중 예러가 발생하는데 

원래 지원이 안되는 것인지 쿼리상 문제가 있는 것인지 확인 부탁드립니다. 

oracle -> cubrid로 변환 작업중에 에러가 발생했습니다. 


SELECT group_concat(menu_name order BY level desc separator  ' > ')  

FROM MENU

WHERE site=a.site 

START WITH menu_idx='0001'

CONNECT BY menu_idx = prior upper_menu_idx;


아래와 같은 에러가 발생합니다. 

CUBRID requires ORDER BY item to be the same expression as GROUP_CONCAT argument or an integer (argument position).



위의 쿼리에서 

level 을 넣으면 위와 같은 에러가 발생합니다. 

level 에 menu_name을 넣으면 정상적으로 작동하지만 원하는 결과 (order by에 따른 순서)가 나오지 않습니다. 


1. group_concat에서 level 을 사용할 수 없는 것인지?

2. 아니면 위의 쿼리를 다른 방식으로 변경해야하는것인지


궁금합니다. 

감사합니다. 






  • ?
    성진 2016.05.21 01:35

    group_concat() 에서 ORDER BY 사용 시 나열을 원하는 컬럼 또는 표현식만 사용 가능합니다.

    group_concat(컬럼1 ORDER BY 컬럼1 [asc/desc]) 만 가능합니다.

    그 외의 정렬이 필요한 경우에는 먼저 정렬된 쿼리를 인라인 뷰로 감싸서

    group_concat() 함수에 ORDER BY 절을 제외 하시면 됩니다.


    자세한 사용방법은 매뉴얼을 참고 하시기 바랍니다.

    http://www.cubrid.org/manual/ko/9.3.0/sql/function/analysis_fn.html#group-concat 


  • ?
    성진 2016.05.21 01:52

    예를들면 아래와 같은 데이터가 있고

    DROP TABLE tree;

    CREATE TABLE tree(ID INT, MgrID INT, Name VARCHAR(32), BirthYear INT);

    INSERT INTO tree VALUES (1,NULL,'Kim', 1963);

    INSERT INTO tree VALUES (2,NULL,'Moy', 1958);

    INSERT INTO tree VALUES (3,1,'Jonas', 1976);

    INSERT INTO tree VALUES (4,1,'Smith', 1974);

    INSERT INTO tree VALUES (5,2,'Verma', 1973);

    INSERT INTO tree VALUES (6,2,'Foster', 1972);

    INSERT INTO tree VALUES (7,6,'Brown', 1981);

    INSERT INTO tree VALUES (8,4,'Brown2', 1981);


    계층쿼리로 표현 시 좌측 결과 표와 결과가 같으며


    SELECT id, NAME, mgrid, LEVEL

    FROM tree

    START WITH mgrid IS NULL

    CONNECT BY PRIOR id=mgrid



    ID

    [NAME]

    MgrID

    LVL

    ID

    [NAME]

    MgrID

    LVL

    1

    Kim

     

    1

    1

    Kim

     

    1

    3

    Jonas

    1

    2

    8

    Brown2

    4

    3

    4

    Smith

    1

    2

    3

    Jonas

    1

    2

    8

    Brown2

    4

    3

    4

    Smith

    1

    2

    2

    Moy

     

    1

    2

    Moy

     

    1

    5

    Verma

    2

    2

    7

    Brown

    6

    3

    6

    Foster

    2

    2

    5

    Verma

    2

    2

    7

    Brown

    6

    3

    6

    Foster

    2

    2


    위와 같이 그룹별 하위 노드의 순서만 역순으로 하고자 하고 뎁스가 10이 넘지 않는다 가정 한다면


    SELECT id, NAME, mgrid, LEVEL

    FROM tree

    START WITH mgrid IS NULL

    CONNECT BY PRIOR id=mgrid

    ORDER BY CONCAT(CONNECT_BY_ROOT id, DECODE(LEVEL, 1, 1, 10- LEVEL))


    로 표현이 가능합니다.


    또한 이 결과를 group_concat()로 이름만 나열 하고자 한다면


    SELECT GROUP_CONCAT(A.[NAME]  separator  ' > ')

    FROM (

    SELECT id, NAME, mgrid, LEVEL

    FROM tree

    START WITH mgrid IS NULL

    CONNECT BY PRIOR id=mgrid

    ORDER BY CONCAT(CONNECT_BY_ROOT id, DECODE(LEVEL, 1, 1, 10- LEVEL))

    ) A


    로 표현 할 수 있을 것 입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 21 admin 2024.04.23 133675
2345 외부 개체에 트랩 가능한 오류(C0000005)가 발생했습니다. 스크립트를 계속 실행할 수 없습니다. 오류가 발생합니다. 2 하아품 2016.05.28 15809
2344 큐브리드 HA copylogdb 오류 문제... 4 SHnJH 2016.05.26 12832
2343 password file open error 라고 뜹니다. 1 철이 2016.05.25 11746
2342 MSSQL에서 큐브리드 연동 3 미곰 2016.05.24 13650
» gorup_concat 에서 level 을 인식못하는 문제 2 보살 2016.05.20 11287
2340 한글테이터 깨짐현상 1 jmhoya 2016.05.20 11630
2339 큐브리드 매니저 실행시 workspace 설정? 1 라면 2016.05.18 10959
2338 On-line 상태에서 Volume 추가 안되는 문제 2 브이찾기 2016.05.17 10437
2337 큐브리드 -75에러 확인 좀 부탁드려요 1 봉보로봉봉 2016.05.09 10736
2336 별도의 패키지 프로그램 제작시 설치파일 3 강아지60 2016.05.07 11696
2335 HA 환경에서의 대량의 Data 이관 관련 문의 2 브이찾기 2016.05.04 11524
2334 로그 관련 질문 몇가지입니다. 1 라면 2016.05.04 11327
2333 브로커 구동시 cas가 제대로 올라오지 않습니다. 1 tlawldyd 2016.05.03 12084
2332 Archive Log만으로 타임복구가 가능한가요? 4 핑핑크 2016.04.29 12640
2331 python3.x, django1.8 이상 지원 하는 드라이버 좀 만들어 주셨으면 합니다. 1 블랙이 2016.04.20 11718
2330 Oracle->Cubrid 시 cubrid Manager 툴에서 2 블랙이 2016.04.20 12185
2329 에러 문의 1 시나브로 2016.04.19 13451
2328 운용중인 서버에 신규 레플리카노드 추가방법문의드립니다. 1 secret 나라보자 2016.04.19 7
2327 큐브리드 매니저 실행 후 DB접속 시 1 안녕하세요1 2016.04.15 12988
2326 큐브리드 시간 관련 질문드립니다. 1 안녕하세요1 2016.04.13 11772
Board Pagination Prev 1 ... 91 92 93 94 95 96 97 98 99 100 ... 213 Next
/ 213

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales