본문 바로가기

Programming_Language/Oracle_Sql4

[Procedure] 프로시저란? Procedure : - 매개변수를 사용하여 호출할 수 있는 하위 프로그램. - 일반적으로 절차를 사용하여 작업을 수행. (일련의 작업을 정리한 절차) - 보통 단독으로 실행해야 할 작업을 위임받았을 때 사용. * 절차 (규격, 매개 변수 선언) - 규격 : Procedure 키워드로 시작하여 프로시저 이름 또는 파라미터 목록으로 끝낸다. - 매개 변수 선언 : 선택 사항 1) 매개 변수를 사용하지 않는 절차는 괄호 없이 작성 2) 절차 본문은 키워드 IS(또는 AS)로 시작하고 키워드 END 뒤에 선택적인 절차 이름으로 끝낸다. * 프로스저와 함수 차이점! 1. 리턴 값 유무(함수는 무조건 리턴값이 있어야 한다.) - 프로시저는 없어도 상관 없다. 2. 리턴 값 개수(함수는 무조건 1개의 리턴 값을 가.. 2023. 7. 4.
[Oracle] LPAD, RPAD 함수 사용하기 (공백 채우기) * LPAD : 왼쪽에 특정문자를 채워서 문자열 길이를 맞출 때 사용. LPAD("값(컬럼)","총 문자길이","채울문자") 예) LPAD(TEAM_CD,5,'0') 2023년 1월에서 12월까지 CONNECT BY를 이용해서 LPAD를 활용해보자 SELECT '2023년 ' || LPAD(LEVEL,2,0) || '월' AS NO FROM DUAL CONNECT BY LEVEL LEVEL 숫자의 길이를 2 BYTE로 만들고, 빈 칸은 0으로 채운다. 2023년 01월 2023년 02월 2023년 03월 2023년 04월 2023년 05월 2023년 06월 2023년 07월 2023년 08월 2023년 09월 2023년 10월 2023년 11월 2023년 12월 * RPAD : 오른쪽에 특정문자를 채워서.. 2023. 6. 26.
[Oracle] CONNECT BY LEVEL 로 FOR문처럼 사용하기 CONNECT BY : 계층형 쿼리이지만, LEVEL로 사용해서 0~N의 값을 출력해서 FOR문 처럼 사용할 수 있다. 예제) 0~15까지 출력하기 SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY LEVEL 그 후 ANIMAL_OUTS 테이블에서 각 시간마다 입양 보낸 카운트 값을 구하고 조인을 시켜 대조 하면서 각 시간마다 건수를 출력합니다. 결과 hourcount 00 10 20 30 40 50 60 73 81 91 102 1113 1210 1314 149 157 1610 1712 1816 192 200 210 220 230 위와 같은 결과가 나옵니다. 제가 생각한 방법은 이 쿼리지만, 좀 더 간편하게 작성 하는 분들도 있으니 참고만 해주세요 ㅎㅎ 2023. 6. 16.
[Oracle] ROWNUM 대신 FETCH Oracle 12버전 이후에 나온 것으로 "행의 수를 제한하는 역할"를 담당한다. MySql, MSSql, PostgreSql 같은 경우는 LIMIT를 사용이 가능해서 문제가 없지만 Oracle 경우는 LIMIT가 없어서 BETWEEN아니면 ROWNUM으로 사용해왔다. ROWNUM를 쓰기 애매할 경우 FETCH를 이용해서 ROW 수를 제한해 보자. [문법] SELECT A.flavor FROM(SELECT A.flavor , A.total_order , SUM(B.total_order) AS total_order1 FROM FIRST_HALF A INNER JOIN JULY B ON A.flavor = B.flavor GROUP BY A.flavor,A.total_order ) A GROUP BY A.f.. 2023. 6. 15.
반응형