Background Image
질의작성
2009.06.24 02:42

pivot() 간략하게 구현하기

조회 수 23426 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
CUBRID에서는 pivot()을 지원하지는 않지만 object 개념의 set 을 이용하여 간략하게 pivot()을 구현할 수 있다.
아래에서 CUBRID 에서 제공하는 시스템 카다로그 테이블중 테이블 정보(db_class), 필드정보(db_attribute)를 이용하여 각 테이블 별로 필드명을 출력하도록 만들어 보았다.
select class_name, list(select attr_name from db_attribute a where a.class_name = c.class_name) from db_class c
와 같이 질의를 하면 아래와 같은 결과를 볼수있다. 
'glo'                 {'header_size', 'holder_obj', 'unit_size'}
'glo_holder'       {'glo', 'lock', 'name'}
'glo_name'        {'holder_ptr', 'pathname'}
'db_serial'         {'att_name', 'class_name', 'current_val', 'cyclic', 'increment_val', 'max_val', 'min_val', 'name', 'owner', 'started'}
'db_stored_procedure_args'  {'arg_name', 'data_type', 'index_of', 'mode', 'sp_name'}
'db_stored_procedure'  {'arg_count', 'lang', 'owner', 'return_type', 'sp_name', 'sp_type', 'target'}
'db_partition'        {'class_name', 'partition_class_name', 'partition_expr', 'partition_name', 'partition_type', 'partition_values'}
...
첫번째가 테이블명(class_name)이고, 두번째가 테이블의 필드명들을 pivot 형태로 만든 것이다.
pivot 된 결과는 {}로 감싸져있고 각 데이터들은 , 로 구분되어있으니, 이점을 감안하여 사용하면 된다.

  1. 데이터 존재하면 update, 존재하지 않으면 insert 방법(ON DUPLICATE KEY UPDATE)

  2. 예약어를 테이블명이나 컬럼명으로 사용시

  3. CUBRID DB 내의 auto_increment 값을 초기화 하자.

  4. group_concat(문자열 그룹처리) 함수 사용하기

  5. INSERT수행 시, 현재날짜,현재시각으로 자동 입력하는 방법

  6. 중복데이터 제거 방법

  7. 쿼리로 인덱스 정보 확인하기

  8. 컬럼 사이즈 변경 방법

  9. 데이터 값 작은 따옴표(') 넣기

  10. 쿼리로 테이블이 존재하는지 확인하기

  11. pivot() 간략하게 구현하기

  12. 임의의 컬럼을 rownum 으로 업데이트 하기

  13. 문자 코드셋(UTF-8, EUC-KR) 사용시 CUBRID 는?

  14. 테이블 데이터 복사 하기

  15. 테이블 컬럼 변경 및 추가

  16. LIKE 검색에서 INDEX_SCAN사용 하기

  17. group by 사용 방법 및 여러 필드중 하나의 필드에 대하여만 group by 처리 방법

  18. 모든 필드에 하나 이상 중복 값 찾기

  19. MERGE INTO 사용 예제 ( INSERT, UPDATE문을 1개의 쿼리로 실행 )

  20. 오류데이타검증 - 숫자 이외의 데이타 확인하는 방법

Board Pagination Prev 1 2 3 4 Next
/ 4

Contact Cubrid

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