leetcode의 problem의 database의 #176 Second Highest Salary 문제
https://leetcode.com/problemset/database/
이 문제의 정답은 MySQL로만 나와있다.
MySQL의 LIMIT OFFSET 을 MSSQL의 OFFSET FETCH를 통해 해결해본다.
SQL Server 2012부터 가능하다고 함
// MSSQL
SELECT ISNULL(
( SELECT DISTINCT Salary
FROM Employee
ORDER BY Salary DESC
OFFSET 1 ROWS
FETCH NEXT 1 ROWS ONLY ), NULL
) AS SecondHighestSalary
OFFSET은 ORDER BY와 함께 사용한다.
OFFSET 1 ROWS --> 1행 건너뛰기
FETCH NEXT 1 ROWS ONLY --> 다음 한 행만 조회하기
ex. 봉급 5순위 부터 8순위까지 조회하시오.
SELECT Salary
FROM Employee
ORDER BY Salary DESC
OFFSET 4 ROWS
FETCH NEXT 8 ROWS ONLY
※ 대충 데이터 넣어서 돌려보려고 SQL Fiddle 에서 테이블 생성하는데 잘 안 된다.
자꾸 아래와 같은 에러가 떠서 포기했다... 다른 사이트는 아예 mssql이 안 되고...
Unable to get host connection: Connections could not be acquired from the underlying database!
SSMS 깔자
'IT' 카테고리의 다른 글
MSSQL | 자주 쓰는 문자 함수 정리 (0) | 2019.09.12 |
---|---|
MSSQL | 자주 쓰는 숫자 함수 정리 (0) | 2019.09.10 |
SQL | 온라인으로 SQL 쿼리문 실행 가능한 페이지들 (0) | 2019.09.07 |
ORACLE & MSSQL | 그룹 별 소계 조회 - ROLLUP, UNION ALL (0) | 2019.09.07 |
아파치 톰캣 | 서버 포트번호 충돌 해결 + xml 파일 text 에디터로 변경 (1) | 2019.06.08 |