[MSSQL] 입력된 값(ROW,행) 중 몇 번째 값 가져오기 함수
2014. 3. 3. 14:12ㆍIT
MSSQL 에서 ROW단에서 몇번째로 큰 값 가져와라!! 하는 미션이 있었다.
오라클과는 다르게 MSSQL에서는 함수들이 많이 빈약하다는 것을 볼 수 있었다.
[예제 화면 1]
만약 위와 같은 상황에서 두번째로 큰 값은 90이다. 이것을 어떻게 가져올까....
[함수를 활용한 결과]
함수 내용은 아래와 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | CREATE FUNCTION [dbo].[fn_NJCHO_Greatest] -- 기본 4개 인자 값으로 설정!! (@IsNum1 float = null , @IsNum2 float = null , @IsNum3 float = null , @IsNum4 float = null , @ Order int ) RETURNS float WITH EXEC AS CALLER AS BEGIN DECLARE @ temp TABLE (dt float ) IF @IsNum1 IS NOT NULL BEGIN INSERT INTO @ temp ( dt ) SELECT @IsNum1 END IF @IsNum2 IS NOT NULL BEGIN INSERT INTO @ temp ( dt ) SELECT @IsNum2 END IF @IsNum3 IS NOT NULL BEGIN INSERT INTO @ temp ( dt ) SELECT @IsNum3 END IF @IsNum4 IS NOT NULL BEGIN INSERT INTO @ temp ( dt ) SELECT @IsNum4 END RETURN ( Select dt From ( SELECT dt , Row_number() Over( Order By dt Desc ) As 'Rn' FROM @ temp ) As x Where 1=1 And Rn = @ Order ) END GO |
'IT' 카테고리의 다른 글
[CSS] 버튼 만들기 (0) | 2014.03.03 |
---|---|
[RealGrid+] RealGrid+ Architecture (0) | 2014.03.03 |
[MSSQL] 테이블 인덱스(INDEX) 보기 (0) | 2014.03.03 |
[RealGrid+] 우리테크 리얼그리드 플러스 (0) | 2014.03.03 |
[jQuery] 엘리먼트 요소 값 가져오기 함수 (0) | 2014.03.03 |