Growth Hoon

20231017_TIL_SQL CASE, SUBSTRING 본문

TIL_Today I Learned

20231017_TIL_SQL CASE, SUBSTRING

sayhoon 2023. 10. 17. 23:36

MySQL CASE 구문에 대해서

1. CASE에 컬럼명을 붙이지 않은 경우

   해당 CASE문은 WHEN에 컬럼명을 명시해주어야 하며 조회되는 결과값은 지정해주는 방식

SELECT
  col_1,
  ( CASE
      WHEN 컬럼명 조건문1 THEN 결과값 1
      WHEN 컬럼명 조건문2 THEN 결과값 2
      WHEN 컬럼명 조건문3 THEN 결과값 3
      ELSE 위 조건문 다 아닌경우에서의 결과값 4
    END ) AS 별칭

 

 

2. CASE에 컬럼명을 붙이는 경우

  해당 CASE문은 WHEN에 컬럼에 존재하는 데이터 값들을 넣어서 사용해주면 된다.

SELECT 
  col1,
  ( CASE col2
      WHEN val1 THEN 'a'
      WHEN val2 THEN 'b'
  END ) AS 별칭

사용해보니 1번의 경우에는 연속형 데이터 형태 [INT, FLOAT]인 경우에 사용하면 좋을 것 같다.

2번의 경우에는 특정 날짜 혹은 범주형 데이터에서 특정 값을 지정할 때 사용하는 것이 좋을 것 같다.


MySQL SUBSTRING에 대해서

1. SUBSTRING
문자열을 다루는 경우 python에서의 indexing과 유사한 기능

-- SUBSTRING("문자열", 시작위치(index), 길이 (length) )

-- example 1
SELECT
  SUBSTRING("standard",1,3)
>> "sta"

-- example 2
SELECT
  SUBSTRING("standard",3,2)
>> "an"

SUBSTRING과 유사한 기능을 하는 함수들도 존재

SUBSTRING과 완전 동일한 SUBSTR()

왼쪽에서부터 indexing하는 LEFT()

오른쪽에서부터 indexing하는 RIGHT()

 

 

reference site

1. case구문에 대한 블로그

2. case구문에 대한 네이버 블로그

3. substring에 대한 블로그

4. substring, left,right에 대한 블로그