>데이터 베이스 >MySQL 튜토리얼 >SQL SELECT 문을 사용하여 처음 N개의 양수를 어떻게 생성할 수 있습니까?

SQL SELECT 문을 사용하여 처음 N개의 양수를 어떻게 생성할 수 있습니까?

DDD
DDD원래의
2024-12-24 14:35:15307검색

How Can I Generate the First N Positive Integers with a SQL SELECT Statement?

SQL SELECT를 사용하여 처음 N개의 양수 생성

문제:

첫 번째 N개 얻기 표준 SQL SELECT 문만을 사용하는 N 양의 정수는 문제를 제기했습니다. 카운트 테이블을 사용하지 않고 해결 방법이 있습니까?

답변:

일반 SQL에는 이 작업에 대한 기본 방법이 없지만 여러 주요 데이터베이스 시스템에서는 다음을 제공합니다. 솔루션:

Oracle:

SELECT level
FROM dual
CONNECT BY level <= 10

SQL 서버:

WITH q AS
(
SELECT 1 AS num
UNION ALL
SELECT num + 1
FROM q
WHERE num < 10
)
SELECT *
FROM q

PostgreSQL:

SELECT num
FROM generate_series(1, 10) num

MySQL:

앞서 언급한 시스템과 달리, MySQL에는 유사한 메커니즘이 없습니다. 해결 방법으로 다음 스크립트를 사용하여 임시 테이블을 생성하고 원하는 숫자로 채울 수 있습니다.

CREATE TABLE filler (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT
) ENGINE=Memory;

CREATE PROCEDURE prc_filler(cnt INT)
BEGIN
DECLARE _cnt INT;
SET _cnt = 1;
WHILE _cnt <= cnt DO
INSERT
INTO filler
SELECT _cnt;
SET _cnt = _cnt + 1;
END WHILE;
END
$$

스크립트를 사용하려면 원하는 정수 수로 프로시저를 호출하세요.

CALL prc_filler(10);

위 내용은 SQL SELECT 문을 사용하여 처음 N개의 양수를 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.