Background Image

FORUM

조회 수 8724 추천 수 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 도구 출시 안내 admin 2024.04.23 142
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4481
1625 ha_make_slavedb.sh step5에서 에러 와 질문 2 kimsuny 2013.11.07 9344
1624 ha 스크립트 완료 문구 뜬후에... 5 QA 2013.09.27 10335
1623 ha 스크립트 돌리는 중에 에러 2 QA 2013.09.17 9613
1622 ha 스크립트 step3 Permission denied, please try again 2 QA 2013.09.25 15830
1621 ha 모드 운용중 테이블 삭제된현상 1 secret 나라보자 2015.09.09 26
1620 ha 구성중 error 1 Chris 2013.07.23 19683
1619 ha 구성시 큐브리드 매니저를 이용한 db사용자 생성 문의드립니다. 2 책보는남자 2010.12.07 16598
1618 ha 구성시 warning summary 'SP' 질문있어요 2 덴드로비움 2020.12.10 85
1617 group_concat 사용 방법 1 owlowl 2016.09.22 8878
1616 group_concat 변수 리턴 관련... 1 썬더기 2024.04.22 34
1615 group_concat null 질문 1 wndud 2019.08.19 205
1614 group by 오류 3 초보 2010.02.23 12513
1613 group by 오류 1 초보 2010.03.31 10444
1612 group by 경우 select 배열? 1 봉보로봉봉 2016.08.27 13127
1611 grails에서 사용이 가능한 방법이 있나요? 1 nsky13 2010.03.23 13680
» gorup_concat 에서 level 을 인식못하는 문제 2 보살 2016.05.20 8724
1609 glo테이블에 insert할 경우.. 1 pictions 2009.11.27 8922
1608 glo 테이블 문의 1 chocob 2014.10.17 4186
1607 glibc detected : cub_admin: double free or corruption (fasttop): 0x00000000020b8f60 2 reerror 2013.04.18 12643
1606 getting the schema data... 6 file 큐스코 2017.07.15 396
Board Pagination Prev 1 ... 115 116 117 118 119 120 121 122 123 124 ... 201 Next
/ 201

Contact Cubrid

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