with.sql & null.sql

성혜·2024년 2월 20일
0

Oracle

목록 보기
23/26
post-thumbnail
    WITH <Sub Query>   1.
    SELECT 컬럼리스트  5. 컬럼 지정 (보고 싶은 컬럼만 가져오기) > Projection
    FROM 테이블        2. 테이블 지정
    WHERE 검색조건     3. 조건 지정 (보고 싶은 행만 가져오기) > Selection
    GROUP BY 그룹기준  4. 그룹을 나눈다. 
    ORDER BY 정렬기준; 6. 정렬해서 
  

with절

: 인라인뷰(from 절 서브쿼리)에 이름을 붙이는 기술

  • with절 > 임시 뷰 이름
  • view > 영구 뷰 이름
    with 테이블명 as <서브쿼리>
    select;

  • 실습 코드
select * from (select name, age, couple from tblMen where weight < 90 ) a
    inner join (select name, age, couple from tblWomen where weight > 60) b
        on a.couple = b.name;
        

with a as (select name, age, couple from tblMen where weight < 90),
     b as (select name, age, couple from tblWomen where weight > 60)
select * from a
    inner join b
       on a.couple = b.name;



null 함수

: null을 치환하는 함수

1. nvl (컬럼, 값) -> 주로 사용
2. nvl2(컬럼, 값, 값)


  • 실습 코드
select 
    name,
    case
        when population is not null then population
        when population is null then 0
    end
from tblCountry;
        
-- 위에와 같은 결과셋을 보여줌         
select name, nvl(population,0) from tblCountry;

-- 시퀀스가 없을 경우 => 시퀀스와 똑같이 만드는 서브쿼리 (하지만, 맨 처음에는 null이기 때문에 값을 주기위해 nvl 함수 사용)
insert into tblItem (seq,name,color) 
    values ((select nvl(max(seq),0) + 1 from tblItem),'마우스','white');
        
select * from tblItem;

select 
    name, nvl2(population,1,2)
from tblCountry;

profile
하루를 정리하고 기록합니다.

0개의 댓글