by Amol
21. February 2011 19:20
CREATE FUNCTION [dbo].[GetBinary] (@DecimalNumber BIGINT)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @BinaryNumber VARCHAR(MAX);
WITH cte (Id, Reminder)
AS
(
SELECT
@DecimalNumber / 2 AS Id
,@DecimalNumber % 2 AS Reminder
UNION ALL
SELECT
cte.id / 2
,cte.id % 2 AS Reminder
FROM cte
WHERE cte.Id > 0
)
SELECT @BinaryNumber = COALESCE(@BinaryNumber, '') + CAST(Reminder AS CHAR(1))
FROM cte
ORDER BY id
RETURN (@BinaryNumber)
END