1

Je n'ai pas trouvé de réponse claire ailleurs, alors je la pose ici.

Je travaille sur une archi SQL SERVER.

Voici une table :
champs
objet_blabla_POSTE01@bobo.com
truc_ahahahahahaah_POSTEXY@babo.com
machin_ohohoh_POSTEAA@boba.com
chose_huhuhu_POSTE4A@bibi.com
bidule_ehehehe_POSTEXX@bubo.com

* et que personne ne se foute de la gueule de mon exemple !

But du jeu (et un carambar à celui qui saura m'aider) : sortir en 1 requête... ça :
resultats
POSTE01
POSTEXY
POSTEAA
POSTE4A
POSTEXX


En PHP, je saurais faire ça à coup de split(). Mais comment faire en MSSQL ?

Edith : + svp + merci grin
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

2

3

A vrai dire je suis pas sur que ça soit trop le boulot de ton serveru SQL de faire ce genre de choses..
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

4

Godzil (./3) :
A vrai dire je suis pas sur que ça soit trop le boulot de ton serveru SQL de faire ce genre de choses..

En fait... je n'ai pas le choix, sinon je perds mon taff, je ne touche pas les ASSEDIC, l'achat de mon appart est compromis, mes parents n'ont plus de chambre pour m'héberger, Malika me quitte et je meure seul dans un caniveau.
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

5

Erf
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

6

La solution n'existe pas en SQL ANSI

Il faut faire du spécifique SQL SERVER et plus précisément utiliser une procédure stoquée (stored proc) leurs noms commencent par SP_... et il doit déja en exister une permettant le parsing d'une chaine. Si elle n'existe pas, c'est à toi de l'écrire (si c'est 2003 ou 2005 ça s'écrit en .NET), faut juste savoir que c'est chiant et rébarbatif...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

7

8

Merci vince !
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

9

avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

10

(accessoirement montreuillois, j'ai pas posté des liens vers la doc des deux fonctions de SQL Server qui font ça juste pour faire joli)
(accessoirement également, je les ai trouvées en faisant un Google qui m'a pris 2 bonnes minutes)
non vince, je ne parle pas à également

11

Au départ, je ne voulais paqs opter pour ta solution spectras, pour ça que je ne t'avais pas répondu (désolé), étant donné aussi que je connaissais ces fonctions. Mais depuis, le pb a évolué.
Je dois reconnaître, dans un champs avec 2/3 "_", la seconde partie. Le second "_" étant situé entre le car n°10 et le 13, j'ai taillé à 11.

Ma solution :
SELECT SUBSTRING(champs, CHARINDEX('_', champs) + 1, CHARINDEX('_', champs, 11) - CHARINDEX('_', champs) - 1) AS resultats
FROM latable
WHERE (workitem_category_tree_value = N'Sauvegarde-Restauration') AND (workitem_title LIKE 'backupdsb_%') AND (contact_email <> N'')


Merci pour tout !
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo