Files
C2P/C2P_Project/dbo/Functions/dbo.f_prt_getParameter.sql
2014-07-18 16:58:50 +02:00

43 lines
1.2 KiB
Transact-SQL

-- =============================================
-- Author: G:A:R
-- Create date:
-- Description: estrazione valore del paramento passato
-- =============================================
CREATE FUNCTION f_prt_getParameter
(
@par AS VARCHAR(50)
,@val AS VARCHAR(50)
,@endSepar AS VARCHAR(10) = '&'
)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @Result VARCHAR(50)
DECLARE @Inizio INT;
DECLARE @Fine INT;
SET @par = '%'+ @par + '=%' -- '%QuoteType=%'
--;WITH CTE AS
--(
-- SELECT *, ( PATINDEX(@campo , Chiave) + LEN(@campo) - 2 ) As Inizio , CHARINDEX ( '&' ,Chiave , PATINDEX(@campo , Chiave) ) As Fine
-- FROM dbo.ReportPrintTicket
-- WHERE Ticket = 1 AND PATINDEX(@campo , Chiave) > 0
--)
SET @Inizio = PATINDEX(@par , @val )
IF @Inizio > 0
BEGIN
SET @Inizio = @Inizio + LEN(@par) - 2
SET @Fine = CASE WHEN ( CHARINDEX ( @endSepar , @val , @Inizio ) ) = 0
THEN LEN(@val)
ELSE CHARINDEX ( @endSepar , @val , @Inizio )
END ;
SELECT @Result = SUBSTRING( @val, @Inizio, @Fine-@Inizio )
END
RETURN @Result
END