Requet ou Procédure ou Déclancheur!!!!

Résolu
sounamar Messages postés 43 Date d'inscription mercredi 10 janvier 2007 Statut Membre Dernière intervention 12 septembre 2008 - 15 mai 2008 à 19:43
cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 - 23 mai 2008 à 17:10
salut tt le monde :
    j'ai besoin de créer une Requete qui permet d'inserer dans une colonne la concaténation entre deux autres colonne de meme table...

1er colonne : un champs qui contien un numéro auto
2eme colonne : un champ qui permet d'inserer les numero
3éme colonne : "si  2eme colonne = -1 fait (3éme colonne=numligne de 1er colonne)"
                  "sinon 2eme colonne <> -1 fait ( la concaténation entre "2eme colonne(.)numligne de 1er colonne)"

(.) séparation par un point

2 réponses

cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 4
23 mai 2008 à 17:10
Ca dépend de ta base de donnée mais sous SQL serveur, tu peut utilisé les champ calculé ou une vue, voir une vue indéxé (la vue me semble la meilleur solution...).

CREATE VIEW MaVue AS
SELECT
   col1 MonIndex,
   col2 AS MonNumero,
   CASE col2 WHEN -1 THEN CAST(col1 as NVarChar(10)) ELSE CAST(col2 as NVarChar(10)) + '.' + CAST(col1 as NVarChar(10)) END AS MonChampCalcul
FROM
   MaTable;

Ensuite tu utilise la vue comme si c'était une table :
   SELECT
      MonIndex,
      MonNumero,
      MonChampCalcul
   FROM
      MaVue;

il y'a quelque limitations mais dans la majorité des cas ca seras trés bien.
3
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
16 mai 2008 à 10:37
Bonjour,
un truc comme ça ?
update table set col3=case when col2=-1 then col1 else col2+'.'+col1 end where lignes doivent être modifiées

Dom
0
Rejoignez-nous