1.
Type of Triangle
SELECT
CASE WHEN A+B <=C OR A+C <=B OR B+C <= A THEN 'Not A Triangle'
ELSE CASE WHEN A=B AND B=C AND A=C THEN 'Equilateral'
ELSE CASE WHEN A=B OR B=C OR A=C THEN 'Isosceles'
ELSE 'Scalene'
END END END
FROM TRIANGLES;
SQL
복사
2.
THE PADs
#1
SELECT Name || '(' || SUBSTR(Occupation,1,1) || ')'
FROM OCCUPATIONS
ORDER BY Name; -- 또는
SELECT
CASE Occupations WHEN 'Doctor' THEN Name || '(D)'
CASE Occupations WHEN 'Professor' THEN Name || '(P)'
CASE Occupations WHEN 'Singer' THEN Name || '(S)'
CASE Occupations WHEN 'Actor' THEN Name || '(A)'
END AS Name_Ocu
FROM OCCUPATIONS
ORDER BY Name;
#2
SELECT 'There are a total of '|| COUNT(*) || ' ' || LOWER(Occupation) || 's.'
FROM OCCUPATIONS
GROUP BY Occupation
ORDER BY COUNT(*), Occupation;
SQL
복사
3.
Print Prime Numbers
•
connect by level : 연속된 숫자를 조회할 때 사용
ex) 1~10 까지 연속된 숫자 조회
SELECT LEVEL AS NO
FROM DUAL
CONNECT BY LEVEL <= 10;
SQL
복사
ex) 2020년 1월부터 12월까지 출력
SELECT '2020년 '||LPAD(LEVEL,2,0)||'월' AS NO
FROM DUAL
CONNECT BY LEVEL <= 12
SQL
복사
ex) 특정 날짜 구간 조회하기
검색조건의 From ~ To 사이의 날짜 리스트를 구할 수도 있다.
ex) From : 2020년 7월 1일 / To : 2020년 7월 17일
SELECT TO_DATE('20200701','YYYYMMDD') + (LEVEL-1) AS DT
FROM DUAL
CONNECT BY LEVEL <= (TO_DATE('20200717','YYYYMMDD') - TO_DATE('20200701','YYYYMMDD'))
---------------------------------------------------------------------------------
SQL
복사