13. februar 2004 - 14:20Der er
2 kommentarer og 1 løsning
Splitte streng op
Hej,
Er der ikke en funktion, der kan splitte en streng op? Jeg har en tekst i en stored procedure, hvor hvert ord i denne streng skal overføres som parameter til en anden SP.
Er det muligt i SQL-T?
Lidt alla:
... -- Indeholder næste ord, der skal overføres. DECLARE @ord VARCHAR(100) -- Indeholder længden af hele teksten DECLARE @len INT -- Forsætte så længe der er flere ord WHILE BEGIN -- Hente næste ord ud fra teksten. @ord = -- Overføre ordet til SP EXEC dbo.AddWord @value=@ord END
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
nix, der findes ikke en split i T-SQL. Du kan bygge videre på nedenstående.
create procedure MySplitter(@s varchar(1000)) as declare @s varchar(1000), @a int While len(@s)>0 begin set @a=charindex(';',@s) exec myOwnSp substring(@s,1,@a-1)) set @s = right(@s,len(@s)-@a) end go
Hver lige obs på, at ; er splittegnet og at strengen SKAL slutte med ; for at ovenstående virker.
create procedure MySplitter(@s varchar(1000)) as declare @t varchar(1000), @a int While len(@s)>0 begin set @a=charindex(';',@s) set @t=substring(@s,1,@a-1)) exec myOwnSp @t set @s = right(@s,len(@s)-@a) end go
Super... 1000 tak for hjælpen trer! Jeg fik tilpasset dit eksempel:
CREATE PROCEDURE MySplitter(@content VARCHAR(1000)) AS DECLARE @ord VARCHAR(1000), @ordpos INT SET @content = @content + ' '
WHILE LEN(@content) > 0 BEGIN -- Returns the starting position of the specified expression in a character string. SET @ordpos = CHARINDEX(' ', @content) -1 -- Returns part of a character, binary, text, or image expression. SET @ord = SUBSTRING(@content, 1, @ordpos) -- Returns the part of a character string starting a specified number of integer_expression characters from the right. SET @content = RIGHT(@content, (LEN(@content) - @ordpos + 1)) -- PRINT @ord END GO
EXEC MySplitter @content='Dette er en test'
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.