'MSSQL 줄넘김'에 해당되는 글 1건
[MSSQL] 소소한 팁 (1) : ROW_NUMBER(), 줄넘김, 임시테이블, 기본일자, 시퀀스 생성 및 사용
-- 1. [ROWNUM]
-- 1-1. 순차적으로 순번을 지정(그룹 X)
-- ROWNUM이 1, 2, 3 ,,, 1씩 증가
SELECT ROW_NUMBER() OVER(ORDER BY [정렬하고 싶은 컬럼명]) AS ROWNUM
, BATCH_NO
FROM [테이블]
-- 1-2. 그룹별로 순차적으로 순번 지정
-- EX) 특정컬럼 값이 '01', '02', '03'일 때 각 그룹별로 순번을 지정
-- '01'에서 1, 2, 3 ,,, '02'에서 1, 2, 3 ,,, 조건 안걸어주면 당연히 중복 생김
SELECT ROW_NUMBER() OVER(PARTITION BY [특정컬럼명] ORDER BY [정렬하고 싶은 컬럼명]) AS ROWNUM
FROM [테이블]
-- 2. [줄넘김]
SELECT 'LINE1' + CHAR(13) + CHAR(10) + 'LINE2'
/* 아래와 같은 형태로 보이도록 함
LINE1
LINE2
*/
-- 3. [임시 테이블]
-- ※ 임시 테이블 #EX_TABLE 초기화
IF OBJECT_ID('tempdb..#EX_TABLE') IS NOT NULL
DROP TABLE #EX_TABLE
-- 3-1. 임시 테이블에 값 넣기 (1)
SELECT *
INTO #EX_TABLE
FROM MYTABLE -- 넣고 싶은 데이터를 조회한 뒤 FROM 전에 INTO #임시테이블명 넣어주기
-- 3-2. 임시 테이블에 값 넣기 (2) : 프로시저 실행하여 넣기
-- 프로시저를 실행한 데이터 형식 그대로 생성
CREATE TABLE #EX_TABLE
(
ROW_SEQ INT,
COLUNM1 VARCHAR(10),
COLUMN2 VARCHAR(50)
)
INSERT INTO #EX_TABLE
EXEC [프로시저명] '파라미터1', '파라미터2'
-- 4. 원하는 기간을 일 단위로 조회
SELECT CONVERT(VARCHAR(10), DATEADD(D, NUMBER, '20240101'), 23) AS 'DATE' -- 'YYYY-MM-DD' 형식
FROM MASTER..SPT_VALUES
WHERE TYPE = 'P'
AND NUMBER <= DATEDIFF(D, '20240101'/*시작일자*/, '20240131'/*종료일자*/)
/* 출력값
DATE
2024-01-01
2024-01-02
2024-01-03
...
2024-01-31
*/
-- 날짜 형식은 원하는대로 변경하여 사용
-- 5. 시퀀스 생성
CREATE SEQUENCE [dbo].[시퀀스명]
AS [bigint]
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999
CACHE
GO
-- 생성 후 시퀀스 사용
NEXT VALUE FOR [시퀀스명] -- 시퀀스 채번
작성하던 와중에도 몇 개 또 씀,,
외우면 좋겠지만 매번 까먹으니까 적어놓기.