Hier ist eine Split-Funktion, kann es als dbo.Split('sf,we,fs,we',',')
gelten, wenn ich die Zeichenfolge zu Spaltennamen ändern, funktioniert es nicht, wie dbo.Split(table.columnName,',')
.SQL Split Comma Getrennt Spalte auf Delimiter
Select * from dbo.Split('[email protected]','@')
Werke ist aber
Select * from dbo.Split((Select Email from Users),'@')
hat eine Fehlermeldung:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '('.
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ','
Die Funktion ist hier:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[Split] (@String varchar(8000), @Delimiter char(1))
returns @temptable TABLE (items varchar(8000))
as
begin
declare @idx int
declare @slice varchar(8000)
select @idx = 1
if len(@String)<1 or @String is null return
while @idx!= 0
begin
set @idx = charindex(@Delimiter,@String)
if @idx!=0
set @slice = left(@String,@idx - 1)
else
set @slice = @String
if(len(@slice)>0)
insert into @temptable(Items) values(@slice)
set @String = right(@String,len(@String) - @idx)
if len(@String) = 0 break
end
return
end
, die es zu refered ist: SQL 2005 Split Comma Separated Column on Delimiter
Oder jemand kann mir eine ähnliche Funktion geben, die eine Spalte in zwei teilen kann
Könnten Sie bitte den Teil "es funktioniert nicht" näher erläutern? –
Die Funktion arbeitet mit einem Varchar-Wert, nicht mit einer Spalte. Dieser Wert könnte natürlich von einer Spalte kommen. Sie verwenden dies, um CSV-Daten in die mehreren Spalten zu normalisieren, in denen es von Anfang an gespeichert sein sollte, oder? – 48klocs