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 JOIN과 INNER 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 |