SELECT NULLIF(123,123) AS 결과1
, NULLIF(123,1234) AS 결과2
, NULLIF('A','B') AS 결과3
FROM DUAL;
SELECT BUYER_NAME AS 거래처
, NVL(BUYER_CHARGER,'없음') AS 담당자
FROM BUYER
WHERE BUYER_CHARGER IS NULL; -- NULL 검색 시 IS를 사용함
-- WHERE BUYER_CHARGER IS NOT NULL; -- NULL을 제외한 값을 검색 시 IS NOT를 사용함
1. 회원 마일리지에 100을 더한 수치를 검색하시오.
-- NVL 이용 / ALIAS는 성명, 마일리지, 변경마일리지
SELECT MEM_NAME AS 성명
, MEM_MILEAGE AS 마일리지
, NVL(MEM_MILEAGE,0) + 100 AS 변경마일리지
FROM MEMBER;
2. 회원 마일리지가 있으면 '정상회원', NULL이면 '비정상 회원'으로 검색하시오.
-- NVL2 이용 / ALIAS는 성명, 마일리지, 회원상태
SELECT MEM_NAME AS 성명
, MEM_MILEAGE AS 마일리지
, NVL2(MEM_MILEAGE,'정상회원','비정상 회원') AS 회원상태
FROM MEMBER;
- 비교하는 값이 같으면 null 출력 , 같지 않으면 앞의 값을 출력함.
SELECT NULLIF(123,123) AS 결과1
, NULLIF(123,1234) AS 결과2
, NULLIF('A','B') AS 결과3
FROM DUAL;
- NULL값을 제외한 첫번째 값을 출력함.
SELECT COALESCE(NULL, NULL,'HELLO','NULL','SQL')
FROM DUAL;
3. 회원의 주민번호 뒷자리 첫글자를 사용하여 1이면 남성, 2이면 여성, 3이면 2000년 이후 남아, 4면 2000년 이후 여아
-- ALIAS : 회원ID, 회원명, 주민번호 뒷자리, 성별
SELECT MEM_ID AS 회원ID
, MEM_NAME AS 회원명
, MEM_REGNO2 AS 주민번호뒷자리
, DECODE(
SUBSTR(MEM_REGNO2,1,1)
,'1', '남성'
,'2', '여성'
,'3', '2000년 이후 남아'
,'4', '2000년 이후 여아'
, MEM_REGNO2
) AS 성별
FROM MEMBER;
4. 상품 분류 중 앞의 두 글자가 'P1'이면 판매가를 10% 인상하고, 'P2'이면 판매가를 15% 인상하고, 나머지는 동일 판매가로 검색하시오
-- DECODE 함수 사용, ALIAS는 상품명, 판매가, 변경 판매가
SELECT PROD_LGU AS 상품코드
, PROD_NAME AS 상품명
, PROD_SALE AS 판매가
, DECODE(
SUBSTR(PROD_LGU,1,2)
,'P1', PROD_SALE * 1.1
,'P2', PROD_SALE * 1.15
)AS 변경판매가
FROM PROD;
5. 상품 분류 중 앞의 두 글자가 'P1'이면 판매가를 10% 인상하고, 'P2'이면 판매가를 15% 인상하고, 나머지는 동일 판매가로 검색하시오.
-- DECODE 함수 사용, ALIAS는 상품명, 판매가, 변경 판매가대전측기사에서는 3월에 생일인(MEM_BIR) 회원을 대상으로 마일리지를 10% 인상해주는 이벤트를 시행하고자 한다. 생일이 3월이 아닌 회원은 짝수인 경우만 5% 이상처리한다.
-- ALIAS : 회원ID, 회원명, 마일리지, 변경마일리지
SELECT MEM_ID AS 회원ID
, MEM_BIR AS 생일
, MEM_NAME AS 회원명
, NVL(MEM_MILEAGE,0) AS 마일리지
, NVL(DECODE(
SUBSTR(MEM_BIR,4,2)
, '03' , MEM_MILEAGE * 1.1
, DECODE( --else
-- MOD(EXTRACT(MONTH FROM MEM_BIR),2)
MOD(SUBSTR(MEM_BIR,4,2),2)
,0, MEM_MILEAGE * 1.05
, MEM_MILEAGE
)
),0) AS 변경마일리지
FROM MEMBER;
[Oracle DB 입문 12] JOIN(1) (0) | 2021.03.12 |
---|---|
[Oracle DB 입문 11] 집계함수 (0) | 2021.03.12 |
[Oracle DB 입문 09] SQL 함수 (0) | 2021.03.08 |
[Oracle DB 입문 08] SQL 예제 (0) | 2021.03.05 |
[Oracle DB 입문 07] SQL 예제 (0) | 2021.03.03 |