프로그래밍

mssql nvl2

언젠간 프로 2013. 10. 11. 16:36

※ 오라클의 NVL2 함수와 동일한 기능을 하는 함수. 


CREATE FUNCTION [dbo].[FN_NVL2](

    @COL_VALUE VARCHAR(4000), 

    @REPLACE_ARG1 VARCHAR(4000), 

    @REPLACE_ARG2 VARCHAR(4000)

) RETURNS VARCHAR(4000)

/*

* CREATE : 2013-07-12

* DESC : @COL_VALUE 가 NULL이 아닌 경우 @REPLACE_ARG1로 값을 대체하고 

*        NULL인경우 @REPLACE_ARG2 값으로 대체 한다. 

*/


BEGIN

    DECLARE @RET_VALUE VARCHAR(4000);

    SET @RET_VALUE = @COL_VALUE;

    

    IF (@COL_VALUE IS NULL OR @COL_VALUE = '')

        BEGIN

            SET @RET_VALUE = @REPLACE_ARG2

        END

    ELSE

        BEGIN

            SET @RET_VALUE = @REPLACE_ARG1

        END


    RETURN @RET_VALUE

END