본문 바로가기
공부/SQL

SQL 추가 공부

by 앙팡공기팡 2023. 4. 7.

1. ORDER BY에 꼭 테이블 네임이 들어가 필요 x

 

-EX: ORDER BY (J.TOTAL_ORDER + H.TOTAL_ORDER) DESC

 

2.헷갈리는 순서 기억하기

 

-BETWEEN은 작은 거 뒤에 큰거 또한 이상 이하를 포함한다.

-EX: age BETWEEN 30 and 50

DATEDIFF는 큰거 뒤에 작은 순서로 진행된다.

-EX: DATEDIFF(end_date,start_date)

 

3.Sql CHAR타입에 숫자말고 다른게 포함되어있어도 숫자만 알아듣는다

-단 앞의 가장 먼저 나온 숫자만 알아들음

 

-EX: SELECT 3+'a24d5'     

-Result: 25

 

4.OUTER JOININNER JOIN을 같이 썼는데 나는 오류.....?? ?

 

-근데 INNER JOIN a

          LEFT JOIN b

 이런 형식은 되었던 것 같기도 하고 모르겠다.

아시는 분은 댓글점ㅎㅎㅎ...

 

5. JOIN 대신 WHERE FROM 다른 테이블 name의 방법도 있다.

 

-쿼리문 작성시 다른 table값이 필요할 때 꼭 JOIN만 고집할 필요는 없다. 상황에 맞게

 

6.WITH as (), as ()문으로 두번 사용 가능

 

-WITH를 두번 쓰면 오류가 난다. 예시를 통해 하나로 몰아보자.

 

- EX: WITH car as (SELECT * FROM cars where car_type = '세단' ), truck as (SELECT * FROM cars WHERE car_type = 'truck')

 

7.SUBSTRING 구문

 

-column의 값중에서 '기준 값'이 '기준 개수' 이상 나왔을 때 까지만 출력한다. : split과 비슷함

 

- EX:SUBSTRING_INDEX(b.OUTCOME ,' ',1)

 

8.SUBQUERY 응용

 

-서브 쿼리는 값이 하나라면 보통 값처럼 사용이 가능하다.

 

-EX:

WHEN rental_term < 30 THEN rental_term * (history.fee - (history.fee * (SELECT discount_rate

                                                                                                    FROM car_rental_company_discount_plan

                                                                                                    WHERE car_type = '트럭' AND duration_type = '7 이상') / 100))

이런식으로 값대신 서브쿼리로 불러오기 가능

 

 

 

-다짐-

 

1. 문제를 꼼꼼이 읽자

 

2.너무 쉬워서 안될거 같은 로직이 될때가 있다. 먼저 시도해보자

'공부 > SQL' 카테고리의 다른 글

3-30 SQL 추가 공부  (0) 2023.03.30
3.24 SQL 추가 공부  (0) 2023.03.24
3-21. SQL 추가 지식 공부  (1) 2023.03.21
4. DATE 관련 구문 & round  (0) 2023.03.20
3. JOIN과 REGEXP(정규 표현식)  (0) 2023.03.17