43 lines
1.2 KiB
Transact-SQL
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 |