posted by 구름너머
2006. 4. 21. 09:27
* 이 팁들은 oracleclub.com의 질문과 답변에 올라온 글을 제가 정리했습니다.
1. 10%를 랜덤하게 가져옵니다.(오라클 8.1.7 이상부터 지원이 됩니다.) [하얀그림자님 답변글]
SQL> SELECT * FROM table_name SAMPLE (10);
2. 오라클에서 CASE문 사용 예제 [하얀그림자님 답변글]
SQL>SELECT col, CASE WHEN col >= 0 AND col < 6 THEN 'A' WHEN col >= 6 AND col < 14 THEN 'B' WHEN col >= 14 AND col < 22 THEN 'C' WHEN col >= 22 THEN 'D' END FROM table_name;
3. 해당년도의 선택된 주의 첫번째 날자를 구하고 싶습니다.[석철희님 답변글]
[질문] 해당년도의 선택된 주의 첫번째 날자를 구하고 싶습니다.
예로 2002년 36번째 주의 첫번째 날자는 2002/09/02입니다. 2002년 36번째주를 가지고 '2002/09/02'이란 해당주의 첫번째 날자를 구하고 싶습니다.
[답변][석철희님 답변글]
SQL> SELECT NEXT_DAY(TO_DATE(해당년도||'0101','RRRRMMDD') + (선택한주 - 2) * 7, 2) FROM DUAL;
SQL> SELECT NEXT_DAY(TO_DATE(2003||'0101','RRRRMMDD') + (2 - 2) * 7, 2) FROM DUAL; NEXT_DAY -------- 03/01/06
==> FROM 앞에 2 는 월요일을 그 주에 첫번째로 선택한 거니깐 일요일을 그 주의 첫번째 날로 바꾸시려면 1로 바꾸시면 됩니다.
4. DB 테이블 내용 복사 대해서[하얀그림자님 답변글]
1). Table A와 Table B 가 있는데. A의 내용을 B로 복사하는 방법
SQL>INSERT INTO b SELECT * FROM a;
2). Table A가 있고 Table B를 생성하면서 복사하는 방법
SQL>CREATE TABLE b AS SELECT * FROM a;
3). Table A가 있고 Table A와 구조가 같고 내용은 복사하지 않는 Table B 생성 방법
SQL>CREATE TABLE b AS SELECT * FROM a WHERE 1 = 2;
5.점수별로 몇명씩 있는지 알고 싶습니다 .[배경열님 답변글]
[질문] 이름 점수 =============== 홍길동 90 김길동 98 이길동 75 성춘향 60 이동국 30 최성국 100 김남일 85
일때 ..... 점수별로 몇명씩 있는지 알고 싶습니다 ..
원하는 결과값 ============= 점수대 명수 =============== 90-100 3 80-89 1 0-79 3
[답변 ] Sign Function을 쓰세요. SELECT DECODE(SIGN(점수-89),1,'90-100', DECODE(SIGN(점수-79),1,'80-89','0-79')), COUNT(*) FROM 성적 GROUP BY DECODE(SIGN(점수-89),1,'90-100', DECODE(SIGN(점수-79),1,'80-89','0-79')) ORDER BY 1 DESC
6. 컬럼에 해당하는 테이블명 알아내기..
SQL>SELECT TABLE_NAME FROM USER_TAB_COLS WHERE COLUMN_NAME ='BOARD_ID'
이렇게 하시면 됩니다.. 컬럼관련 정보는 USER_TAB_COLS 데이터사전을 통해 확인할 수 있습니다. COLS라는 시노님을 이용해도 됩니다.
SQL>SELECT COUNT(COLUMN_NAME) "Column Count" FROM COLS WHERE TABLE_NAME ='STORM_BOARD'
시간날때마다 틈틈히 추가하겠습니다.
|
|
|
================================================ * Oracle Community OracleClub.com * http://www.oracleclub.com * http://www.oramaster.net * 운영자 : 김정식 (oramaster _at_ empal.com) ================================================ |
※ oracleclub 강좌를 다른 홈페이지에 퍼가실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^ |