본문 바로가기
반응형

oracle3

오라클 - 존재하지 않는 컬럼의 값을 UNION 하는 방법 오라클의 집합 연산자를 사용할 때 집합 연산자로 연결된 SELECT문들은 컬럼의 수와 데이터 형이 순서대로 일치해야 합니다. 따라서 동일한 컬럼이 존재하는 경우에 다음과 같이 합집합을 이용한 데이터 SET을 만들 수 있습니다. 하지만 이런 경우는 어떨까요? 우선, TCOM 테이블을 확인해보겠습니다. TCOM 테이블의 전체 데이터는 위와 같습니다. 이번엔 TEMP 테이블을 확인해보겠습니다. TEMP 테이블의 전체 데이터는 다음과 같습니다.(일부 생략) 이런 테이블에서 동일한 EMP_ID를 사용하고 TEMP 테이블의 SALARY, TCOM 테이블의 COMM을 사용해 합집합을 하고 싶다면 어떻게 해야 할까요? 우선 위와 같은 방식으로 합집합을 사용해보겠습니다. 다음과 같이 동일한 컬럼명을 이용해 합집합 처리를.. 2021. 11. 8.
오라클 - LENGTH 함수를 이용하여 한글의 글자 수 알아내기 오라클에서 LENGTH 함수는 주어진 문자열의 길이를 리턴하는 함수입니다. LENGTH 함수는 두 종류가 있습니다. 일반 LENGTH : 문자 단위로 처리 LENGTHB : 바이트 단위로 처리 따라서 같은 글자에 LENGTH와 LENGTHB를 적용한 결과는 다릅니다. 예를 들어 보겠습니다. 다음 실행문을 실행시키면, 다음과 같은 결과가 나옵니다. 그렇다면, LENGTHB의 실행 결과는 어떨까요? 앞선 실행문에서 LENGTH를 LENGTHB로 바꾸면 위와 같이 결과가 13에서 20으로 바뀌는 것을 확인할 수 있습니다. 이는 BYTE로 인식할 경우 한글 한 문자를 2 BYTES로 인식하기 때문입니다. 이러한 차이점을 이용해 특정 문자열에 한글이 몇 글자 있는지 알아낼 수 있습니다. 위와 같이 LENGTHB .. 2021. 10. 28.
오라클 - Row 단위 자료를 Column 단위로 변경하기 실습 테이블을 조회해보겠습니다. SELECT * FROM sam_tab02를 입력한 결과는 다음과 같습니다. 다음과 같은 조회 결과를 아래와 같은 테이블로 조회하는 방법을 알아보겠습니다. 우선 행에 번호를 매기겠습니다. 위와 같은 명령어를 입력하여, 다음과 같은 테이블을 얻었습니다. 저희가 원하는 결과물에서는 가장 위의 값 'F107'부터 가장 아래 값 'F125'까지 Row를 4개씩 묶어서 Column으로 변경하는 것입니다. 따라서, RNO를 4개씩 동일한 수로 묶습니다. 이때는 CEIL 함수를 사용합니다. CEIL함수는 값을 올리는 함수로 RNO의 값을 4로 나눈 값을 올림 하면 4개씩 동일한 값을 얻을 수 있습니다. 다음과 같이 명령어를 입력하면 다음과 같은 실행결과를 얻을 수 있습니다. 자 이제 .. 2021. 10. 27.
반응형