SQL

[SQL] 3.

kinggoddino 2024. 8. 5.

SQL문 기본 구조

select : 데이터 조회

from : 어떤 테이블에서 가져올지

where : 조건 주기

group by : 범주 지정

order by : 쿼리 결과를 정리

순서

 

replace

블루라고 적힌 부분을 핑크로 바꿔줘 라는 뜻

 

replace(바꿀 컬럼, 현재 값, 바꿀 값)

 

 

 

substr : 특정한 문자만 뽑아주는 구문

1번째 글자부터 두글자씩 뽑아와달라는 의미. 결과 : 서울

 

 

 

concat : 붙여줘라는 뜻.

join 함수처럼 문자열을 합할 수 있다.

 

지금 컬럼이 세 가지가 있는데 (select)

group by 로 묶을 때 명시적으로 하기 위해서는 컬럼명을 다 적어도 되고

첫번째 컬럼, 두 번째 컬럼을 묶어준다는 의미로 1, 2 라고 써도 똑같음.

 

 

끝에 숫자 안적으면 마지막까지임.

 

 

 

 

if (조건, 조건 충족할때, 조건을 불충족할때)

 

조건충족할ㄹ 때 replace

 

 

 

case when 으로 조건주기

in 은 묶기

끝낼때는 end

 

앞의 when 두 조건에 부합하지 않는 것이 없을 경우는

else 를 생략해도 됨.

 

 


 

select restaurant_name,
       price/quantity "단가",
       cuisine_type,
       order_id,
       case when (price/quantity <5000) and cuisine_type='Korean' then '한식1'
            when (price/quantity between 5000 and 15000) and cuisine_type='Korean' then '한식2'
            when (price/quantity > 15000) and cuisine_type='Korean' then '한식3'
            when (price/quantity <5000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식1'
            when (price/quantity between 5000 and 15000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식2'
            when (price/quantity > 15000) and cuisine_type in ('Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '아시아식3'
            when (price/quantity <5000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타1'
            when (price/quantity between 5000 and 15000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타2'
            when (price/quantity > 15000) and cuisine_type not in ('Korean', 'Japanese', 'Chinese', 'Thai', 'Vietnamese', 'Indian') then '기타3' end "식당 그룹"
from food_orders

..

 

 

 

서울을 포함하면 1.1배, 아닐때는 1배

case 안에 if 문을 쓸 수 있다.

 

 

 

 

'SQL' 카테고리의 다른 글

[SQL] 2.  (0) 2024.08.05
[SQL] 1.  (0) 2024.08.05