본문 바로가기

MS-SQL

MSSQL 게시판 글번호 매기기

관련글 : 2019/01/17 - [MS-SQL] - MSSQL 그룹별 최상위 데이터 가져오기

게시판 글번호 매기는 방법(최신글이 앞에 나오게)에 대해 알아보겠습니다. 간단한 건데, ROW_NUMBER() 함수를 이용합니다.  

-----------------------
-- 예제 테이블 생성
-----------------------
CREATE TABLE [dbo].[Board](
	[Idx] [int] IDENTITY(1,1) NOT NULL,
	[Writer] [nvarchar](50) NULL,
	[Subject] [nvarchar](100) NULL,
	[WriteTime] [datetime] NULL,
	[Contents] [nvarchar](1000) NULL,
 CONSTRAINT [PK_Board] PRIMARY KEY CLUSTERED 
(
	[Idx] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

ALTER TABLE [dbo].[Board] ADD  CONSTRAINT [DF_Board_WriteTime]  DEFAULT (getdate()) FOR [WriteTime]

-----------------------
-- 예제 데이터 생성
-----------------------
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이1', '1등', '1등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이2', '2등', '2등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이3', '3등', '3등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이4', '4등', '4등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이5', '5등', '5등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이6', '6등', '6등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이7', '7등', '7등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이8', '8등', '8등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이9', '9등', '9등 이네요')
INSERT INTO Board(Writer, Subject, Contents) VALUES('글쓴이10', '10등', '10등 이네요')

--------------------------------------------------
-- 최근 글이 먼저 나오도록 정렬하고 번호 매기기
--------------------------------------------------
SELECT 
	Num = ROW_NUMBER() OVER(ORDER BY idx)
	, * 
FROM Board ORDER BY Num DESC

게시판 글번호 최근글 결과

프로젝트의 성공을 기원합니다.

'MS-SQL' 카테고리의 다른 글

MSSQL 프로시저 텍스트 검색  (0) 2019.04.19
MSSQL 날짜 변환, CONVERT()함수의 활용  (0) 2019.04.13
MSSQL 버전확인  (0) 2019.02.15
MSSQL 초간단 팁들  (0) 2019.02.02
MSSQL 그룹별 최상위 데이터 가져오기  (0) 2019.01.17