Notice
Recent Posts
Recent Comments
Link
승적이익강 (勝敵而益强)
[Altibase]개요번호 정렬 본문
이런 방법을 생각해 보았다.
SELECT DISTINCT CUST_BD_VIRTUAL_ID,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 1), 3, '0'), '000') lv1,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 2), 3, '0'), '000') lv2,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 3), 3, '0'), '000') lv3,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 4), 3, '0'), '000') lv4,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 5), 3, '0'), '000') lv5,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 6), 3, '0'), '000') lv6,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 7), 3, '0'), '000') lv7,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 8), 3, '0'), '000') lv8
FROM CUST_BD_INFO
order by LV1, LV2, LV3, LV4, LV5, LV6, LV7, LV8
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 1), 3, '0'), '000') lv1,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 2), 3, '0'), '000') lv2,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 3), 3, '0'), '000') lv3,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 4), 3, '0'), '000') lv4,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 5), 3, '0'), '000') lv5,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 6), 3, '0'), '000') lv6,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 7), 3, '0'), '000') lv7,
NVL(LPAD(REGEXP_SUBSTR(CUST_BD_VIRTUAL_ID, '[^.]+', 1, 8), 3, '0'), '000') lv8
FROM CUST_BD_INFO
order by LV1, LV2, LV3, LV4, LV5, LV6, LV7, LV8
=> 레벨별로 3자리씩 만들고 빈자리는 000으로 채워서 정렬
단점은 레벨별로 동적으로 쿼리를 생성해야 하겠지..
'Database' 카테고리의 다른 글
[Oracle] IMP-00058 and ORA-28000 (0) | 2016.05.04 |
---|---|
[FireBird] 설치 및 데이터베이스 생성 (0) | 2016.05.04 |
[altibase] 64bit 윈도우에서 32bit ODBC관리자 사용하기 (0) | 2016.05.03 |
쿼리실행예상시간(초) (0) | 2008.09.19 |
꼬리에꼬리를 물어 찾아가는 SQL (0) | 2008.09.19 |
Comments