Wrzuć plik
Przeciągnij tutaj plik CSV...
Ostatnie komentarze
Super
Troche zmienilem i smiga'
USE [LiczbyWStringu]
GO

/****** Object: UserDefinedFunction [dbo].[fnGetNumbersDecStringNew] Script Date: 11.11.2022 09:31:13 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


--Moje modyfikacje dla warunku @Licznik
CREATE FUNCTION [dbo].[fnGetNumbersDecStringNew](@str nvarchar(MAX),@Licznik int)
RETURNS @ret TABLE(value decimal(10,2)) AS
BEGIN

--Declare @ret1 TABLE(value nvarchar(255))
Declare @i int
---Declare @str nvarchar(255)
Declare @p nvarchar(255)
Declare @d nvarchar(255)
Declare @LP int
--Declare @Licznik int
--set @licznik =4
set @LP=0

set @p=''
--set @str = 'uaj1s/k60/23.24kl 5MM 34.53C89Lm naj/890.0sie'
set @i = 0
set @d =''

While @i< Len(@str)
Begin
set @i+=1
set @p = SUBSTRING(@str, @i ,1)

If @p>= char(48) and @p < =char(57) or @p= char(46)

Begin
set @d = @d + @p --+','
---char(47) = /
--If SUBSTRING(@k, @i+1,1)<char(48) or SUBSTRING(@k, @i+1,1)>char(57)-- and SUBSTRING(@k, @i+1,1)<char(46)
If SUBSTRING(@str, @i+1,1)<char(46)or SUBSTRING(@str, @i+1,1)=char(47) or SUBSTRING(@str, @i+1,1)>char(57)
or SUBSTRING(@str, @i+1,1)=char(64)

begin
set @lp=@LP+1

If @lp =@licznik
--INSERT INTO @ret VALUES (CAST(@d AS decimal(10,2)))
INSERT INTO @ret VALUES (@d )
---print @d


Begin
set @d=''
end
end
end
end
RETURN
end
--wywolanie jn.
--Select *, (Select* FROM dbo.fnGetNumbersDecStringNew(c4,4))as kl From tblSubstring
--select* FROM dbo.fnGetNumbersDecStringNew('w10w10d20f35',3)
--Select (Select* FROM dbo.fnGetNumbersDecStringNew(c4,1))+(Select* FROM dbo.fnGetNumbersDecStringNew(c4,2))as SumaC1iC2 From tblSubstring where c1=10
GO




Poz JB
Super pomocne Dziękuję Pozdrawiam
Zgadzam się z kolega z 2014-05-26
Świetny artyk€ł !
Ooo chyba użyli varchar-a ;)
Morzna by bylo trohe jasiniej?