[MSSQL] 입력된 값(ROW,행) 중 몇 번째 값 가져오기 함수
2014. 3. 3. 14:12ㆍIT
MSSQL 에서 ROW단에서 몇번째로 큰 값 가져와라!! 하는 미션이 있었다.
오라클과는 다르게 MSSQL에서는 함수들이 많이 빈약하다는 것을 볼 수 있었다.
[예제 화면 1]
만약 위와 같은 상황에서 두번째로 큰 값은 90이다. 이것을 어떻게 가져올까....
[함수를 활용한 결과]
함수 내용은 아래와 같다.
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 |