[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 |