'Database/자주사용'에 해당되는 글 4건
- 2016.03.03 오라클 order by 정렬순서(한글,영어,숫자)
- 2013.09.12 숫자/문자 체크
- 2012.02.07 오라클 wait
- 2012.02.03 오라클 TIMESTAMP
출처 : http://www.gurubee.net/m/article/66519
ㄱㄴㄷㄹ..... 순으로 order by 를 하려고 하는데요...
그렇게 할 경우 영어가 우선순위가 되는데
혹시 ㄱㄴㄷㄹ순으로 나오되 영어는 뒤에 나오게 하려면 어떻게 해야하나요
아발란체 (4,916:Lv47) [2016년 01월 15일 14시]
WITH T AS (
SELECT 'ㄱ' AS val FROM DUAL UNION ALL
SELECT 'ㄴ' FROM DUAL UNION ALL
SELECT 'ㄷ' FROM DUAL UNION ALL
SELECT 'A' FROM DUAL UNION ALL
SELECT 'B' FROM DUAL
)
SELECT * FROM T ORDER BY CONVERT(val, 'ISO2022-KR')개꿈 (95:Lv9) [2016년 01월 15일 14시]
와우~ 감사합니다 아발란체님~^^
대한민국만세 (150:Lv11) [2016년 01월 15일 14시]
지원하지 않는 캐릭터셋이라고 하는데요 ㅜㅜ
오라클 11버전이고 토드에서 실행했습니다.
대한민국만세 (150:Lv11) [2016년 01월 15일 15시]
12345678WITH
T
AS
(
SELECT
'ㄱ'
AS
val
FROM
DUAL
UNION
ALL
SELECT
'ㄴ'
FROM
DUAL
UNION
ALL
SELECT
'ㄷ'
FROM
DUAL
UNION
ALL
SELECT
'A'
FROM
DUAL
UNION
ALL
SELECT
'B'
FROM
DUAL
)
SELECT
*
FROM
T
ORDER
BY
CASE
WHEN
VAL >
'Z'
THEN
'0'
ELSE
'1'
END
;
jkson (1,133:Lv33) [2016년 01월 15일 15시]
아발란체님 꺼 잘 되는데 이상하네요.
대문자 Z보다 소문자 z가 더 클걸요? 그리고 영문끼리, 한글끼리 order by 먹히게 하려면
ORDER
BY
CASE
WHEN
VAL >
'Z'
THEN
'0'
ELSE
'1'
END
뒤에 val 추가하셔야할 것 같아요.그렇다고 하더라도 'AA'., 'A가' 라는 데이터가 있다면 의도한 바는 'A가'가 먼저나오는 것인데 'AA' 가 먼저 나오게 될 것 같아요.
구글링 해보니..
한글, 영문, 숫자에 대한 정렬 알고리즘오라클에서 제공하는 order by 에 대힌 default 정렬 순서=> 숫자 > 영문 > 한글order by convert (컬럼명, 'VN8VN3')=> 숫자 > 한글 > 영문order by convert (컬럼명, 'US8ICL')=> 한글 > 영문 > 숫자order by convert (컬럼명, 'ISO2022-KR')=> 한글 > 숫자 > 영문order by convert (컬럼명, 'UTFE')=> 영문 > 한글 > 숫자이라고 하네요.
숫자만 -> trim(translate(cmp_user_id,'1234567890',' ')) is null
문자만 -> trim(translate(cmp_user_id,'1234567890',' ')) is not null
ss.username, se.time_waited,
so.physical_reads
from v$session_event se, v$session ss, v$sess_io so
where 1=1
and event like '%db file %'
and se.sid = ss.sid
and ss.sid = so.sid
order by time_waited desc;
v$session_wait 를 조회하세요.
V$EVENT_NAME
|
인스턴스에서 정의된 대기이벤트의 정보를 가지는 참조성 View
|
이벤트 명, Parameter1, Parameter2, Parameter3
|
V$SYSTEM_EVENT
|
인스턴스의 기동 후 , 전 세션에서 발생한 대기 이벤트의 누계 통계치(인스턴스 단위)
|
인스턴스의 전반적인 안정도를 판단할 수 있으며, 특정 시간대의 Delta 정보를 산출하여 구간 분석 가능
|
V$SESSION_EVENT
|
현재 접속되어 있는, 각 세션 별 대기이벤트의 누계 통계치
|
접속한 세션에 대해, 각 이벤트 별 통계정보를 파악
|
V$SESSION_WAIT
|
각 세션이 현재 대기하고 있는 대기이벤트에 대한 상세 정보(P1,P2,P3,대기시간 등)를 제공
|
누적데이터가 아니고, 실시간 데이터이므로, 반복적으로, Query를 수행하여 대기이벤트의 상황을 파악해야 함
|
V$SYSTEM_WAIT_CLASS
|
10g NF.인스턴스 기동 후 발생된 대기이벤트를 관련된 Class별로 Grouping 한 결과 제공
|
대기이벤트의 클래스 단위로, 인스턴스의 대기 상황 파악
|
V$SESSION_WAIT_CLASS
|
10g NF. 현재 접속되어 있는 각 세션 별 대기이벤트를 Class별로 Grouping한 결과 제공
|
대기이벤트의 클래스 단위로, 세션의 대기 상황 파악
|
V$SESSION_WAIT_HISTORY
|
10g NF. 최근 10개의 V$SESSION_WAIT 데이터 제공
|
Session Wait에 대한 아주 짧은 이력 정보 제공
|
V$EVENT_HISTOGRAM
|
10g NF. 인스턴스 기동후의 대기이벤트에 대한 히스토그램 제공
|
각 버킷(대기시간의 구간)별 대기이벤트의 발생 이력 파악에 도움
|
V$ACTIVE_SESSION_HISTORY
|
10g NF. Active Session의 이력정보 제공
|
1초 단위로 각 Active 세션 기본 정보,SQL수행정보, PQ 관련정보, 대기Event정보, 대기 Event관련 OBJ#, FiLE#, BLOCK# 등의 정보 제공 |
SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP -INTERVAL '20' MINUTE)
WHERE SEQ ='1'
20분전 데이터 조회