본문 바로가기

나는 엔지니어/ORACLE

group 그룹합수 / 집계함수만 사용하면 group by는 필요없다.Select Count(*)From Emp; Select Count(comm)From Emp; Select Count(*) ,enameFrom Emp Group By Ename; 중복을 제거한후 그룹함수 / 집계 함수 제거는 아래와 같이 사용한다.Select Count(distinct Job)From Emp; 그룹함수는 두번까지 중첩해서 사용할 수있다.하나의 중첩안에 오직 두번밖에 사용 못한다.Select Max(Avg(Salary))From Employeegroup by dno; 더보기
Months_Between/Add_Months/Last_Day Select ename, round(Months_Between(Sysdate,Hiredate))from employee; Select Ename,Hiredate, Add_Months(Hiredate,6), Add_Months(Hiredate,-6)from employee; Select Sysdate, Next_Day(Sysdate,1) -- 1~7 (月~日)from dual; Select Hiredate, Last_Day(Hiredate)From employee; 더보기
DECODE / CASE WHEN DECODE 는 equal연산 밖에 안된다.equal이외의 연산을 사용할때엔 CASE WHEN을 사용한다. .DECODESelect Ename, Dno, Decode(Dno, 10,'ACCOUNTING', 20,'Research', 30,'sales', 40,'operations', 'Default') As DnameFrom Employeeorder by dno; default값을 설정하지 않으면 null이 설정된다.디폴트값을 입력하도록 해주자..( 오류의 위험.) Select Ename, Dno, Case When Dno >= 40 Then 'OPERATIONS' When Dno >= 30 Then 'SALES' When Dno >= 20 Then 'RESEARCH' When Dno >= 10 Then.. 더보기
ROUND / TRUNC / MOD 반올림과 버림 그리고 나머지값 구하기 round.round(data) : 반올림하여 정수로 변환 .round(data,1) : 소수부 둘째자리에서 반올림한다..round(data, -1 ) : 정수부의 첫째자리에서 반올림한다. Select round(Sysdate - Hiredate,1)from employee; TRUNC.trunc(data) : 소수부는 버림 .trunc(data,1) : 소수 둘째자리부터 버림.trunc(data, -1 ) : 정수부의 첫째자리부터 버림 MOD.MOD(data1,data2) : data1를 data2로 나눈 나머지를 반환 더보기
Lpad / Rpad 공백 지정문자 채우기 10문자만 가져오고 공백은 *를 채운다Select Lpad(Salary,10,'*'), Rpad(Salary,10,'*')from employee; 더보기
Instr 문자 찾기 5번째 위치부터 시작하여 두번째 a의 위치를 찾아라 Select Instr('oracle mania','a',5,2)from dual; 더보기
substr 문자열 편집하기 Select --앞에서 Substr('가나다라마바사아자차카',4,3), --뒤에서 substr('가나다라마바사아자차카',-4,3)From Dual; 더보기
DUAL 테이블에 관해서 dual테이블의 소유주는 sys이므로 누구나 사용할 수 있다.. 단순 계산/확이용으로 사용할 수 있다.Select 3+5from dual; 더보기
nvl() 널값을 교체 Select Ename As "en", Salary * 12 + nvl(Commission,0) As Salaryfrom Employee; 어떤 값에 널이 들어 있을 경우 계산 결과값이 널이 되어 버리기 때문에null값을 계산식에 맞는 값으로 변경해줘야 한다.몇만건이 되는 레코드안에 널이 허용된 컬럼이 있다면 사용해서 데이터 무결성을 지키도록 하자. nvl2의 경우는 잘 사용하진 않지만 9i부터 지원한다는걸 기억하자. 더보기