본문 바로가기

잡일기

오라클 쿼리 코테정리 기본기(정렬, 서브쿼리)

 

 

 

               오라클 정렬에 대해. 먼저 정렬해놓고 거기서 내부적으로 또 정렬하기.
-- 동물 보호소 테이블(ANIMAL_INS)에서 동물 ID, 이름, 날짜시간을 선택합니다.
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
-- 이름이 같은 동물들에 대해 날짜시간(DATETIME)을 기준으로 내림차순 정렬합니다.
ORDER BY NAME ASC, DATETIME DESC;

 

 

 


                 %를 이용해서 관련 키워드로 검색하기
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '%강원도%'
ORDER BY FACTORY_ID ASC;

 

 


                  USERS라는 별칭으로 총 갯수 반환가기
SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE AGE IS NULL;

 

 


                    정렬시키고 제일 위에 가져오기
SELECT NAME
FROM(
SELECT * 
FROM ANIMAL_INS
ORDER BY DATETIME ASC
)
WHERE ROWNUM = 1;

 

 


                 서브쿼리
SELECT sub_query.PRICE AS MAX_PRICE
FROM(
    SELECT PRICE
    FROM PRODUCT
    ORDER BY PRICE DESC
) sub_query
WHERE ROWNUM = 1;
----------------------------
SELECT max(price) as MAX_PRICE
from PRODUCT 이거와 같은 쿼리

 

 



                  쿼리에서 IF사용
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, 
       CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '%경기도%'
ORDER BY WAREHOUSE_ID ASC;

 

 

 

 

                숫자를 문자열로 바꾸어서

SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE TO_CHAR(JOINED, 'YYYY') LIKE '%2021%'
AND AGE >= '20' 
AND AGE <= '29';

 

 



                   NVL이란
오라클에서 NULL처리시 사용가능