• Below two functions are very Similar to least and greatest functions in oracle.

    1. SQL Code for least: -

    GO

    /****** Object: UserDefinedFunction [dbo].[least] Script Date: 08/23/2012 00:53:38 ******/

    /*Author: Rakesh

    Description: This works good for numbers and alphabet.

    */

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    CREATE function [dbo].[least] (@str1 nvarchar(max),@str2 nvarchar(max))

    RETURNS nvarchar(max)

    BEGIN

    DECLARE @retVal nvarchar(max);

    set @retVal = (select case when @str1<=@str2 then @str1 end as retVal)

    RETURN @retVal;

    END;

    GO

    Usage: -

    select dbo.least(10,100) LEAST_OF_TWO, dbo.least('R','S') LEAST_OF_TWO_ALPHABET

    2. SQL code for greatest: -

    GO

    /****** Object: UserDefinedFunction [dbo].[greatest] Script Date: 08/23/2012 01:00:56 ******/

    /*Author: Rakesh

    Description: This works good for numbers and alphabet.

    */

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    create function [dbo].[greatest] (@str1 nvarchar(max),@str2 nvarchar(max))

    RETURNS nvarchar(max)

    BEGIN

    DECLARE @retVal nvarchar(max);

    set @retVal = (select case when @str1<=@str2 then @str2 end as retVal)

    RETURN @retVal;

    END;

    GO

    Usage: -

    select dbo.greatest(10,100) GREATEST_OF_TWO, dbo.greatest('a','z') GREATEST_OF_TWO_ALPHABET