case when 문을 써보았다.
CASE
WHEN 조건1 THEN '조건 1 반환 값'
WHEN 조건2 THEN '조건 2 반환 값'
ELSE 'WHEN 조건에 해당 안되는 경우 반환 값'
END
SELECT
CASE
WHEN A + B <= C OR A + C <= B OR B + C <= A THEN 'Not A Triangle'
WHEN A = B AND B = C THEN 'Equilateral'
WHEN A = B OR B = C OR A = C THEN 'Isosceles'
ELSE 'Scalene'
END
FROM TRIANGLES;
concat 함수를 써보았다. concat함수는 둘 이상의 문자열을 입력한 순서대로 합쳐서 반환해주는 함수이다.
CONCAT(문자열1, 문자열2 [, 문자열3 ...])
SELECT NAME,
CASE
WHEN Occupation = 'Doctor' THEN '(D)'
WHEN Occupation = 'Actor' THEN '(A)'
WHEN Occupation = 'Singer' THEN '(S)'
WHEN Occupation = 'Professor' THEN '(P)'
END
FROM OCCUPATIONS;
SELECT concat('There are a total of ', COUNT(Occupation), ' ',Occupation)
FROM OCCUPATIONS
GROUP BY Occupation
ORDER BY COUNT(Occupation), Occupation;
처음에 이렇게 했었는데,

틀린 결과값이 나왔다.
substr(substring이라고 써도 가능) 함수를 사용하기로 했다.
SUBSTR(str, pos), SUBSTR(str FROM pos)
pos 부터 읽으세요
SUBSTR(str,pos,len), SUBSTR(str FROM pos FOR len)
pos부터 읽고 len 만큼 가져오세요
SELECT concat(NAME,'(',substr(occupation,1,1),')')
FROM OCCUPATIONS
ORDER BY NAME;
SELECT concat('There are a total of ', COUNT(Occupation), ' ',lower(Occupation),'s.')
FROM OCCUPATIONS
GROUP BY Occupation
ORDER BY COUNT(Occupation), Occupation;
SELECT N,
CASE
WHEN P is Null THEN 'Root'
WHEN N not in (SELECT P FROM BST) THEN 'Leaf'
ELSE 'Inner'
END
FROM BST
ORDER BY N
처음에 이렇게 썼었는데 오류가 나길래 참고를 하여보니, not in함수 쓸 때 null값을 빼줘야지 잘 작동한다고 한다.
SELECT N,
CASE
WHEN P is Null THEN 'Root'
WHEN N not in (SELECT DISTINCT P FROM BST where P is not Null) THEN 'Leaf'
ELSE 'Inner'
END
FROM BST
ORDER BY N
SELECT c.company_code , c.founder, COUNT(DISTINCT l.lead_manager_code), COUNT(DISTINCT s.senior_manager_code), COUNT(DISTINCT m.manager_code), COUNT(DISTINCT e.employee_code)
FROM Company c JOIN Lead_manager l ON c.company_code = l.company_code
JOIN Senior_manager s ON c.company_code = s.company_code
JOIN Manager m ON c.company_code = m.company_code
JOIN Employee e ON c.company_code = e.company_code
GROUP BY c.company_code, c.founder
ORDER BY c.company_code
처음에 GROUP BY c.company_code이렇게 하나만 그룹바이했더니 계속 오류가 났다 그룹바이할 때 카운트 제외하고 나머지 다 기준으로 넣어줘야하나보다.
넘 어려워서 남에 꺼보고 이해 ㅜㅜㅜㅜㅜ