BLANK, NULL AND BLACK

MS-SQL 에서 중복제거는 DISTINCT 키워드로 가능하다.

MS-SQL 에서 제일 위에 있는 데이터를 보기 위해서는 TOP (숫자) 키워드로 가능하다.

(괄호안의 숫자는 상위 몇개까지 보여질지 결정하는 숫자)


[테스트 환경]

1.MS-SQL

2.1000라인의 사용자 정보 데이터(더미 데이터) (www.mockaroo.com)

3.사번, 이름, 이메일, 성별, 부서코드 등의 컬럼이 있지만, 이름과 부서코드 컬럼만 사용

4.부서코드는 D001 부터 D012 까지 코드가 있음


[목표]

각 부서코드로 조회시 제일 위에 나오는 사용자에게 팀장 권한을 주려고 함.

(말이 안되는 상황이지만, 어디까지나 임의의 데이터로하는 실습이니까..)


SELECT TOP 1 [이름] FROM [사용자테이블] WHERE [부서코드] = 'D001' UNION ALL

SELECT TOP 1 [이름] FROM [사용자테이블] WHERE [부서코드] = 'D002' UNION ALL

SELECT TOP 1 [이름] FROM [사용자테이블] WHERE [부서코드] = 'D003' UNION ALL

.....

SELECT TOP 1 [이름] FROM [사용자테이블] WHERE [부서코드] = 'D012'


보통 회사의 부서가 수백/수천개가 아니니까 이런식으로 해도 되겠지만,

뭔가 좀.. 



SELECT

     [부서].[부서코드]

    ,(SELECT TOP 1 [이름] FROM [사용자테이블] WHERE [부서코드] = [부서].[부서코드]) AS Name

FROM

    (    SELECT

             DISTINCT [부서코드]

         FROM

             [사용자테이블]    ) AS [부서]

ORDER BY

    [부서].[부서코드]



원하는대로 결과가 나왔다.

혹시 지나가다 더 좋은 방법이 있으신 분들은 알려주시기 바랍니다.

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

Stored Procedure  (0) 2018.04.23
MS SQL Server 컬럼 이름 변경  (0) 2017.11.16
오픈소스 데이터베이스 관리 툴  (0) 2017.09.17
LOG 파일 용량 줄이기  (0) 2017.08.07
'sa' 계정으로 로그인 안됨  (0) 2017.01.16