OVH Cloud OVH Cloud

Obtenir un morceau de texte de la base

2 réponses
Avatar
Elo
Bonjour,

J'ai une table dans laquelle j'ai les champs : id et=20
texte.
Mon texte est assez long, et en fait je voudrais savoir=20
s'il est possible dans ma proc=E9dure stock=E9e d'utiliser=20
une fonction (du genre substring) pour n'avoir par=20
exemple que 35 caract=E8res. Si cela est possible, comment=20
est-ce que je dois faire ?
Est-il possible aussi de faire en sorte qu'un mot ne soit=20
pas coup=E9 et de dire par exemple : je veux une chaine de=20
35 caract=E8res maximum, et qui s'arr=EAte =E0 un espace =E0 la=20
fin ?

Merci d'avance.

Elo

2 réponses

Avatar
arno
Le code pour récupérer les 35 caractères d'une chaine : LEFT(MaColonne,35)

Pour ta deuxième question voir le code ci-dessous :



IF(CHARINDEX(' ',MaColonne,0) <= 35)
BEGIN
LEFT(MaColonne,CHARINDEX(' ',MaColonne,0))
END
ELSE
BEGIN
LEFT(MaColonne,35)
END







"Elo" a écrit dans le message de news:
ca8901c43902$0ad89360$
Bonjour,

J'ai une table dans laquelle j'ai les champs : id et
texte.
Mon texte est assez long, et en fait je voudrais savoir
s'il est possible dans ma procédure stockée d'utiliser
une fonction (du genre substring) pour n'avoir par
exemple que 35 caractères. Si cela est possible, comment
est-ce que je dois faire ?
Est-il possible aussi de faire en sorte qu'un mot ne soit
pas coupé et de dire par exemple : je veux une chaine de
35 caractères maximum, et qui s'arrête à un espace à la
fin ?

Merci d'avance.

Elo
Avatar
Elo
Merci beaucoup pour ton aide Arno.

Elo

-----Message d'origine-----
Le code pour récupérer les 35 caractères d'une chaine :


LEFT(MaColonne,35)

Pour ta deuxième question voir le code ci-dessous :



IF(CHARINDEX(' ',MaColonne,0) <= 35)
BEGIN
LEFT(MaColonne,CHARINDEX(' ',MaColonne,0))
END
ELSE
BEGIN
LEFT(MaColonne,35)
END







"Elo" a écrit dans


le message de news:
ca8901c43902$0ad89360$
Bonjour,

J'ai une table dans laquelle j'ai les champs : id et
texte.
Mon texte est assez long, et en fait je voudrais savoir
s'il est possible dans ma procédure stockée d'utiliser
une fonction (du genre substring) pour n'avoir par
exemple que 35 caractères. Si cela est possible, comment
est-ce que je dois faire ?
Est-il possible aussi de faire en sorte qu'un mot ne soit
pas coupé et de dire par exemple : je veux une chaine de
35 caractères maximum, et qui s'arrête à un espace à la
fin ?

Merci d'avance.

Elo


.