GO
/****** Object: UserDefinedFunction [dbo].[fn_GetFriendlyVolumeSize] Script Date: 10/30/2023 10:53:44 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
--select dbo.fn_GetFriendlyVolumeSize(3396226510848)
--select dbo.fn_GetFriendlyVolumeSize(16492537049088)
ALTER FUNCTION [dbo].[fn_GetFriendlyVolumeSize]
(
-- Add the parameters for the function here
@iSize BIGINT
)
RETURNS NVARCHAR(255)
AS
BEGIN
-- Declare the return variable here
DECLARE @ResultVar NVARCHAR(255)
DECLARE @iSizeLargerThanGB BIGINT
SELECT @ResultVAr=CASE WHEN @iSize/POWER(1024,1) > POWER(1024,3) THEN CAST(ROUND(@iSize /POWER(1024,1) / POWER(1024,3),2) AS NVARCHAR(255))+' TB' WHEN @iSize /POWER(1024,1) > (POWER(1024, 2)) THEN CAST(ROUND(@iSize /POWER(1024,1) / (POWER(1024, 2)),2) AS NVARCHAR(255))+' GB'
WHEN @iSize / POWER(1024, 1) > (POWER(1024, 1)) THEN CAST(@iSize / POWER(1024, 1) / (POWER(1024, 1) ) AS NVARCHAR(255)) + ' MB'
WHEN @iSize > (POWER(1024, 1)) THEN CAST((@isize/ POWER(1024, 1)) AS NVARCHAR(255)) + ' KB'
ELSE CAST((@isize/ POWER(1024, 1)) AS NVARCHAR(255)) + ' B' END
RETURN @ResultVAr
END