반응형
TOP
TOP은 상위 N개의 데이터를 출력한다
SELECT TOP 1
item, cnt
FROM sql_test_a
ORDER BY item DESC, cnt DESC
이렇게 TOP 1은 상위 데이터 1개만 출력된다.
TOP WITH TIES
TOP 과 동일하게 상위 N개의 데이터를 조회한다.
하지만 동일한 데이터가 있을 경우 함께 출력된다.
TOP WITH TIES를 사용하기 위해서는 ORDER BY 절이 반드시 함께 와야 한다. (TOP의 경우 없어도 가능)
동일한 데이터는 ORDER BY절 뒤의 오는 컬럼이 기준이 된다.
SELECT TOP 1 WITH TIES
item, cnt
FROM sql_test_a
ORDER BY item DESC, cnt DESC
위의 TOP 예제에서와 다르게 데이터가 2개가 출력이 됐다.
TOP 1 이기 때문에 상위 1개의 데이터만 출력돼야 하지만
ORDER BY절 뒤에 오는 item, cnt의 값이 동일한 데이터가 함께 출력 되기 때문에 2개의 데이터가 출력된다.
동일한 데이터는 ORDER BY절 뒤에 오는 컬럼을 기준으로 한다고 했다.
그렇다면 이번에는 ORDER BY절 뒤에 item 컬럼만을 적용해보자
SELECT TOP 1 WITH TIES
item, cnt
FROM sql_test_a
ORDER BY item DESC
TOP 1임에도 불구하고 item의 값이 동일한 결과를 함께 출력하기 때문에 무려 4개 row의 결과가 출력된다.
[MSSQL] UPDATE TOP (1) 첫 번째 행만 수정
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] 문자열에서 특정 문자 개수 조회 (0) | 2019.07.12 |
---|---|
[MSSQL] 동적 PIVOT, 동적 UNPIVOT (dynamic pivot/unpivot) (0) | 2019.06.14 |
[MSSQL] ROLLUP / CUBE / GROUPING SETS 소계 합계 (5) | 2019.05.11 |
[MSSQL] SQL Server APPLY 연산자 (테이블 반환 함수와 테이블의 조인) (0) | 2019.04.14 |
[MSSQL] SQL Server FK (외래키) 설정 (0) | 2019.04.04 |