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 104
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4468
» gorup_concat 에서 level 을 인식못하는 문제 2 보살 2016.05.20 8724
1658 MSSQL에서 큐브리드 연동 3 미곰 2016.05.24 10950
1657 password file open error 라고 뜹니다. 1 철이 2016.05.25 9375
1656 큐브리드 HA copylogdb 오류 문제... 4 SHnJH 2016.05.26 10265
1655 외부 개체에 트랩 가능한 오류(C0000005)가 발생했습니다. 스크립트를 계속 실행할 수 없습니다. 오류가 발생합니다. 2 하아품 2016.05.28 13313
1654 databases 폴더 이동. 2 철이 2016.05.31 9741
1653 Oracle --> Cubrid 쿼리 변경 질문입니다! 3 잘하자! 2016.06.01 11073
1652 G-클라우드 전자정부프레임워크 호환 버전 및 큐브리드 버전 1 안녕호호 2016.06.01 9504
1651 cubird.conf 설정 중 문의드립니다. 1 라면 2016.06.03 9053
1650 dba 비밀번호가 안바뀌는데 ... 2 수로벨 2016.06.08 11568
1649 질의실행계획 카디널리티 문의 1 종이 2016.06.08 9691
1648 cubrid메니저에서 호스트 연결이 되지 않습니다. 1 life 2016.06.08 10264
1647 큐브리드 메니져가 실행이 되지 않습니다. 1 슈퍼뚱땡이 2016.06.08 9632
1646 HA 구성시 hb fail이 뜹니다. 1 철이 2016.06.09 9805
1645 큐브리드 백업 파일로 디비 복구하기 도움좀 주시면 감사하겠습니다. 1 오명일 2016.06.10 8961
1644 디비데이터 조회시 한글이 물음표로 나옵니다. 3 하아품 2016.06.13 10660
1643 프로시저 변환 문의 2 천상 2016.06.15 9786
1642 윈도우 DBA 비번 암호변경 3 천상 2016.06.15 10399
1641 큐브리드 매니자 동일 SQL 재실행 문제 1 file knight 2016.06.15 8656
1640 cubrid/msg/ 안의 내용을 추가하고싶습니다!.. 1 뚜벅초 2016.06.16 8679
Board Pagination Prev 1 ... 113 114 115 116 117 118 119 120 121 122 ... 200 Next
/ 200

Contact Cubrid

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