TIL 240208

hyeo71·2024년 2월 8일
0

2024 내배캠 AI 트랙

목록 보기
27/79

오늘 공부

  • SQL 179, 181, 182, 183

SQL

REPEAT

SQL 181, SQL 182

REPEAT(반복할 문자열, 반복 횟수)

문자열을 반복하여 출력하는 함수 (Python에서 '문자열'*num랑 같은 것)
반복 횟수가 1 미만이라면 빈 문자열을 출력

재귀쿼리

SQL 181~182, SQL 183

WITH 절을 사용하기 때문에 MySQL 8 이상에서 가능

WITH RECURSIVE cte as (
	-- 첫번째 루프에서만 실행
	SELECT 1 as num 
	UNION ALL -- UNION 필수
  -- 재귀할 문장, 재귀를 멈추는 조건도 여기서 설정
	SELECT num+1
	FROM cte
	where n<10
)

응용하기

WITH RECURSIVE numbers AS (
    SELECT 2 num
    UNION ALL
    SELECT num+1
    FROM numbers
    WHERE num<10
)
SELECT n1.num, n2.num
FROM numbers n1 LEFT JOIN numbers n2 ON n1.num>n2.num
ORDER BY n1.num

n1의 숫자보다 작은 숫자들을 출력할 수 있다.
SQL 183번에서 '에라토스테네스의 체' 방법을 사용한다면 위 방법을 사용할 수 있다.


SQL 179~183

0개의 댓글