OVH Cloud OVH Cloud

requete sql

5 réponses
Avatar
PHIL
bonjour,
j'ai une table avec 4 champs
et je souhaite créer un champ supplementaire.

sur mon 4 eme champ j'ai des valeurs tels que:

?6
?9
?4
5
?34
je voudrai créer un champ supplementaire,ou ma requette pourra faire
suivant la valeur que j'ai dans le 4 eme champ.
si j'ai ?6,alors sur le 5eme champ j'afficherai ligne 6,au fait a chaque
fois que j'ai un point d'interrogation devant, alors j'afficherai sur mon 5
eme champ ligne+le numéro qui suit apres.
si je n'ai pas de point d'interrogation devant je reprend la meme valeur du
champ 4 et le met dans le champ 5 de façon identique.

merci d'avance

5 réponses

Avatar
Philippe T [MS]
Bonjour,

UPDATE MaTable
SET mon_champ_5 = 'ligne ' + mon_champ_4
WHERE LEFT(mon_champ_4, 1) = '?'

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"PHIL" wrote in message
news:
bonjour,
j'ai une table avec 4 champs
et je souhaite créer un champ supplementaire.

sur mon 4 eme champ j'ai des valeurs tels que:

?6
?9
?4
5
?34
je voudrai créer un champ supplementaire,ou ma requette pourra faire
suivant la valeur que j'ai dans le 4 eme champ.
si j'ai ?6,alors sur le 5eme champ j'afficherai ligne 6,au fait a chaque
fois que j'ai un point d'interrogation devant, alors j'afficherai sur mon


5
eme champ ligne+le numéro qui suit apres.
si je n'ai pas de point d'interrogation devant je reprend la meme valeur


du
champ 4 et le met dans le champ 5 de façon identique.

merci d'avance




Avatar
PHIL
et si je n'ai pas le ?
car je peux avoir le ?,sur certains et sur d'autre non ,j'aurai juste la
valeur.
est ce que la requete change?

merci

"Philippe T [MS]" a écrit :

Bonjour,

UPDATE MaTable
SET mon_champ_5 = 'ligne ' + mon_champ_4
WHERE LEFT(mon_champ_4, 1) = '?'

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"PHIL" wrote in message
news:
> bonjour,
> j'ai une table avec 4 champs
> et je souhaite créer un champ supplementaire.
>
> sur mon 4 eme champ j'ai des valeurs tels que:
>
> ?6
> ?9
> ?4
> 5
> ?34
> je voudrai créer un champ supplementaire,ou ma requette pourra faire
> suivant la valeur que j'ai dans le 4 eme champ.
> si j'ai ?6,alors sur le 5eme champ j'afficherai ligne 6,au fait a chaque
> fois que j'ai un point d'interrogation devant, alors j'afficherai sur mon
5
> eme champ ligne+le numéro qui suit apres.
> si je n'ai pas de point d'interrogation devant je reprend la meme valeur
du
> champ 4 et le met dans le champ 5 de façon identique.
>
> merci d'avance
>
>





Avatar
Med Bouchenafa
Ce n'est pas réellement le but de SQL Server de faire ce genre de manip
Mais si tu dois le faire autant utiliser une colonne calculée
Quelque chose comme ceci

ALTER TABLE NomTable ADD NomColonne5 AS CASE LEFT(NomColonne4, 1) WHEN '?'
THEN 'Ligne : ' + SUBSTRING(NomColonne4, 2, LEN(NomColonne4)-1) ELSE
NomColonne4 END

Attention ce script n'est valable que si le '?' se trouve toujours en
première position de NomColonne4
Sinon, il faut l'adapter

--
Bien cordialement
Med Bouchenafa


--
Bien cordialement
Med Bouchenafa
"PHIL" a écrit dans le message de news:

bonjour,
j'ai une table avec 4 champs
et je souhaite créer un champ supplementaire.

sur mon 4 eme champ j'ai des valeurs tels que:

?6
?9
?4
5
?34
je voudrai créer un champ supplementaire,ou ma requette pourra faire
suivant la valeur que j'ai dans le 4 eme champ.
si j'ai ?6,alors sur le 5eme champ j'afficherai ligne 6,au fait a chaque
fois que j'ai un point d'interrogation devant, alors j'afficherai sur mon
5
eme champ ligne+le numéro qui suit apres.
si je n'ai pas de point d'interrogation devant je reprend la meme valeur
du
champ 4 et le met dans le champ 5 de façon identique.

merci d'avance




Avatar
Steve Kass
PHIL,

alter table T add c_supp as replace(c_4,'?','ligne ')

Mais est-ce que vous voulez afficher la chaine 'ligne 6', ou
une valeur qui se trouve dans la 6ième ligne de la même table?
Dans ce cas,

select
T1.ligne_no,
T1.val,
T1.c_2,
T1.c_3,
T1.c_4,
coalesce(T2.val, T1.c_4) as c_5
from T as T1
left outer join T as T2
on T2.ligne_no = substring(T1.c_4,2,20)
and T1.c_4 like '?%'

Steve Kass
Drew University



PHIL wrote:

bonjour,
j'ai une table avec 4 champs
et je souhaite créer un champ supplementaire.

sur mon 4 eme champ j'ai des valeurs tels que:

?6
?9
?4
5
?34
je voudrai créer un champ supplementaire,ou ma requette pourra faire
suivant la valeur que j'ai dans le 4 eme champ.
si j'ai ?6,alors sur le 5eme champ j'afficherai ligne 6,au fait a chaque
fois que j'ai un point d'interrogation devant, alors j'afficherai sur mon 5
eme champ ligne+le numéro qui suit apres.
si je n'ai pas de point d'interrogation devant je reprend la meme valeur du
champ 4 et le met dans le champ 5 de façon identique.

merci d'avance






Avatar
Philippe T [MS]
Bonjour,

Vous pouvez toujours faire un

UPDATE MaTable
SET mon_champ_5 = mon_champ_4
WHERE LEFT(mon_champ_4, 1) <> '?'

juste après.

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"PHIL" wrote in message
news:
et si je n'ai pas le ?
car je peux avoir le ?,sur certains et sur d'autre non ,j'aurai juste la
valeur.
est ce que la requete change?

merci

"Philippe T [MS]" a écrit :

> Bonjour,
>
> UPDATE MaTable
> SET mon_champ_5 = 'ligne ' + mon_champ_4
> WHERE LEFT(mon_champ_4, 1) = '?'
>
> Phil.
> ________________________________________________________
> Philippe TROTIN http://blogs.msdn.com/ptrotin
> Microsoft Services France http://www.microsoft.com/france
>
> "PHIL" wrote in message
> news:
> > bonjour,
> > j'ai une table avec 4 champs
> > et je souhaite créer un champ supplementaire.
> >
> > sur mon 4 eme champ j'ai des valeurs tels que:
> >
> > ?6
> > ?9
> > ?4
> > 5
> > ?34
> > je voudrai créer un champ supplementaire,ou ma requette pourra faire
> > suivant la valeur que j'ai dans le 4 eme champ.
> > si j'ai ?6,alors sur le 5eme champ j'afficherai ligne 6,au fait a


chaque
> > fois que j'ai un point d'interrogation devant, alors j'afficherai sur


mon
> 5
> > eme champ ligne+le numéro qui suit apres.
> > si je n'ai pas de point d'interrogation devant je reprend la meme


valeur
> du
> > champ 4 et le met dans le champ 5 de façon identique.
> >
> > merci d'avance
> >
> >
>
>
>