Colonne SQL séparée par des virgules sur séparateur

Voici une fonction scindée, elle peut s’appliquer comme dbo.Split('sf,we,fs,we',',') , lorsque je change la chaîne en nom de colonne, cela ne fonctionne pas, comme dbo.Split(table.columnName,',') .

 Select * from dbo.Split('[email protected]','@') 

ça marche mais

 Select * from dbo.Split((Select Email from Users),'@') 

a un message d’erreur:

 Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '('. Msg 102, Level 15, State 1, Line 1 Incorrect syntax near ',' 

La fonction est ici:

 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[Split] (@Ssortingng 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(@Ssortingng)0) insert into @temptable(Items) values(@slice) set @Ssortingng = right(@Ssortingng,len(@Ssortingng) - @idx) if len(@Ssortingng) = 0 break end return end 

auquel il est fait référence: Colonne séparée par des virgules divisées SQL 2005 sur un délimiteur

Ou quelqu’un peut me donner une fonction similaire qui peut diviser une colonne en deux

En effet, la fonction renvoie un TABLE.

 SELECT Split(myColumn) FROM myTable 

signifiera

 SELECT myOutputTableFromSplit FROM myTable 

Cela signifie que renvoyer une table à partir de la table et que SQL ne peut pas le faire.