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