Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment convertir une chaîne string en valuers independants?

5 réponses
Avatar
Don Juan
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!

5 réponses

Avatar
EmanuelL
Bonjour Don Juan,

Pas testé, peut-être, à vérifier :
Line feed CHAR(10)
Carriage return CHAR(13)

@MaData = "Charles" + CHAR(10)+CHAR(13) + "Type B" + CHAR(10)+CHAR(13)
+ "Taille 34" + CHAR(10)+CHAR(13) + "M"

INSERT INTO MaTable (Data) VALUES (@MaData)
A+ ;-)

Dans son message précédent, 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!



--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Avatar
MaximeG
Salut Don Juan,

Peut être que cet article t'aidera :

http://www.developpez.net/forums/d442107/bases-donnees/oracle/sql/decouper-chaines-caracteres-suivant-separateur/

Maxime,

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!


Avatar
Med Bouchenafa
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!


Avatar
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

RETURN
END;
GO

declare @v char(50) = 'a,bb,ccc,dddd,eeeee'
declare @s char(1) = ','
SELECT * from dbo.ufn_ListeChamp (@v ,@s )

declare @s char(1) = ','

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!


Avatar
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 *************************