SELECT REPLACE('Charles, Type B, Taille 34, M',',', CHAR(13))
Bien cordialement Med Bouchenafa
"Don Juan" wrote in message news:
Bonjour
Je travail avec SQL Servr 2005. J'ai un champ nomé Data avec des valeurs separés par de virgules comme cela:
Data "Charles, Type B, Taille 34, M"
J'aimerais obtenir cela: Data Charles Type B Taille 34 M
Merci beaucoup d'avance de votre aide!
bruno reiter
peut etre ça :
USE tempdb go
CREATE TABLE Chaine (ID int, ListChaine varchar(50) not null); GO INSERT INTO Chaine VALUES (1,'a,bb,ccc,dddd,eeeee'); INSERT INTO Chaine VALUES (2,'ff,ggg'); INSERT INTO Chaine VALUES (3,'hhh,ii,j'); INSERT INTO Chaine VALUES (4,'vvvv,www,xx,yyy,zzz');
GO
CREATE FUNCTION dbo.ufn_ListeChamp (@v varchar(100),@s char(1)) RETURNS @t TABLE ( Champ varchar(50) NOT NULL ) --Returns a result set that lists all the employees who report to the --specific employee directly or indirectly.*/ AS BEGIN declare @i int = 1 while 1=1 begin IF CHARINDEX(@s,@v) = 0 begin insert @t select @v break end insert @t select substring(@v,1,CHARINDEX(@s,@v)-1) set @v = substring(@v,CHARINDEX(@s,@v)+ 1, len(@v)) end
SELECT ID, f.* FROM Chaine CROSS APPLY dbo.ufn_ListeChamp (ListChaine ,@s ) as f
--BR
"Don Juan" wrote in message news:
Bonjour
Je travail avec SQL Servr 2005. J'ai un champ nomé Data avec des valeurs separés par de virgules comme cela:
Data "Charles, Type B, Taille 34, M"
J'aimerais obtenir cela: Data Charles Type B Taille 34 M
Merci beaucoup d'avance de votre aide!
peut etre ça :
USE tempdb
go
CREATE TABLE Chaine (ID int, ListChaine varchar(50) not null);
GO
INSERT INTO Chaine VALUES (1,'a,bb,ccc,dddd,eeeee');
INSERT INTO Chaine VALUES (2,'ff,ggg');
INSERT INTO Chaine VALUES (3,'hhh,ii,j');
INSERT INTO Chaine VALUES (4,'vvvv,www,xx,yyy,zzz');
GO
CREATE FUNCTION dbo.ufn_ListeChamp (@v varchar(100),@s char(1))
RETURNS @t TABLE
(
Champ varchar(50) NOT NULL
)
--Returns a result set that lists all the employees who report to the
--specific employee directly or indirectly.*/
AS
BEGIN
declare @i int = 1
while 1=1
begin
IF CHARINDEX(@s,@v) = 0
begin
insert @t
select @v
break
end
insert @t
select substring(@v,1,CHARINDEX(@s,@v)-1)
set @v = substring(@v,CHARINDEX(@s,@v)+ 1, len(@v))
end
CREATE TABLE Chaine (ID int, ListChaine varchar(50) not null); GO INSERT INTO Chaine VALUES (1,'a,bb,ccc,dddd,eeeee'); INSERT INTO Chaine VALUES (2,'ff,ggg'); INSERT INTO Chaine VALUES (3,'hhh,ii,j'); INSERT INTO Chaine VALUES (4,'vvvv,www,xx,yyy,zzz');
GO
CREATE FUNCTION dbo.ufn_ListeChamp (@v varchar(100),@s char(1)) RETURNS @t TABLE ( Champ varchar(50) NOT NULL ) --Returns a result set that lists all the employees who report to the --specific employee directly or indirectly.*/ AS BEGIN declare @i int = 1 while 1=1 begin IF CHARINDEX(@s,@v) = 0 begin insert @t select @v break end insert @t select substring(@v,1,CHARINDEX(@s,@v)-1) set @v = substring(@v,CHARINDEX(@s,@v)+ 1, len(@v)) end
SELECT ID, f.* FROM Chaine CROSS APPLY dbo.ufn_ListeChamp (ListChaine ,@s ) as f
--BR
"Don Juan" wrote in message news:
Bonjour
Je travail avec SQL Servr 2005. J'ai un champ nomé Data avec des valeurs separés par de virgules comme cela:
Data "Charles, Type B, Taille 34, M"
J'aimerais obtenir cela: Data Charles Type B Taille 34 M
Merci beaucoup d'avance de votre aide!
Fred BROUARD
Voici une fonction générique qui fait ce travail et retourne une table : http://blog.developpez.com/sqlpro/p7509/langage-sql-norme/fonction-de-decoupage-a-cesure-multiple/
A +
Don Juan a écrit :
Bonjour
Je travail avec SQL Servr 2005. J'ai un champ nomé Data avec des valeurs separés par de virgules comme cela:
Data "Charles, Type B, Taille 34, M"
J'aimerais obtenir cela: Data Charles Type B Taille 34 M
Merci beaucoup d'avance de votre aide!
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies *********************** http://www.sqlspot.com *************************
Voici une fonction générique qui fait ce travail et retourne une table :
http://blog.developpez.com/sqlpro/p7509/langage-sql-norme/fonction-de-decoupage-a-cesure-multiple/
A +
Don Juan a écrit :
Bonjour
Je travail avec SQL Servr 2005.
J'ai un champ nomé Data avec des valeurs separés par de virgules comme
cela:
Data
"Charles, Type B, Taille 34, M"
J'aimerais obtenir cela:
Data
Charles
Type B
Taille 34
M
Merci beaucoup d'avance de votre aide!
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies
*********************** http://www.sqlspot.com *************************
Voici une fonction générique qui fait ce travail et retourne une table : http://blog.developpez.com/sqlpro/p7509/langage-sql-norme/fonction-de-decoupage-a-cesure-multiple/
A +
Don Juan a écrit :
Bonjour
Je travail avec SQL Servr 2005. J'ai un champ nomé Data avec des valeurs separés par de virgules comme cela:
Data "Charles, Type B, Taille 34, M"
J'aimerais obtenir cela: Data Charles Type B Taille 34 M
Merci beaucoup d'avance de votre aide!
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies *********************** http://www.sqlspot.com *************************