https://school.programmers.co.kr/learn/courses/30/lessons/276013

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

코드설명

IN + OR + ORDER BY 를 활용합니다.

 

OR을 활용해서 각 컬럼들을 모두 확인해도 되고, 

IN을 활용해서 진행해도 됩니다.

 

OR을 활용한 방식이 가장 간단합니다.

 

처음에 IN 연산자를 쓸 생각을 못했었는데, 이유는 IN 연산자는 하나의 칼럼에 대해 여러 값들을 찾는 방식이라 생각하여 사용할 생각을 못했습니다.

하지만,  아래와 같은 방식으로도 작성이 가능합니다.

WHERE 'Python' IN (DI1.SKILL_1, DI1.SKILL_2, DI1.SKILL_3)

코드

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPER_INFOS WHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python' ORDER BY ID ASC;

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPER_INFOS WHERE 'Python' IN (SKILL_1, SKILL_2, SKILL_3) ORDER BY ID ASC;

 

OR 방식

SELECT ID AS ID, EMAIL AS EMAIL, FIRST_NAME AS FIRST_NAME, LAST_NAME AS LAST_NAME
FROM DEVELOPER_INFOS AS DI1
WHERE DI1.SKILL_1 = 'Python' OR DI1.SKILL_2 = 'Python' OR DI1.SKILL_3 = 'Python'
ORDER BY DI1.ID ASC

 

여러 컬럼들을 IN 으로 찾기.

SELECT ID AS ID, EMAIL AS EMAIL, FIRST_NAME AS FIRST_NAME, LAST_NAME AS LAST_NAME
FROM DEVELOPER_INFOS AS DI1
WHERE 'Python' IN (DI1.SKILL_1, DI1.SKILL_2, DI1.SKILL_3)
ORDER BY DI1.ID ASC

 

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPER_INFOS AS DI
WHERE DI.SKILL_1 = 'PYTHON' OR DI.SKILL_2 = 'PYTHON' OR DI.SKILL_3 = 'PYTHON'
ORDER BY DI.ID ASC;

 

+ Recent posts