IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

[SQL Server 8.0.] Enumération dans une variable


Sujet :

Développement SQL Server

  1. #1
    Membre actif Avatar de Poussy-Puce
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 357
    Points : 222
    Points
    222
    Par défaut [SQL Server 8.0.] Enumération dans une variable
    Bonjour, je cherche à mettre une énumération dans une variable pour pouvoir réutiliser cette variable plusieurs fois à l'intérieur d'une store procedure. Comme un exemple vos mille mots voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Declare @cies as char(20)
    Set @cies = '01,02,03,04,05'
     
    Select nomCie, codeCie where codeCie in (@cies)
    Est-ce que quelqu'un saurait comment faire???

    Merci d'avance

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Bonjour,

    Je pense que c'est possible. Peux-tu nous préciser avec quel SGBD tu travailles STP ?

    Ex sous Oracle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE COMPANIE (
    cleCie  NUMBER   (10),
    codeCie VARCHAR2 (10),
    nomCie  VARCHAR2 (50));
     
    INSERT INTO COMPANIE VALUES (1, '02', 'Cie 02'); 
    INSERT INTO COMPANIE VALUES (2, '04', 'Cie 04'); 
    INSERT INTO COMPANIE VALUES (3, '06', 'Cie 06'); 
    COMMIT;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> DEFINE Cies = '01,02,03,04,05';
    SQL> 
    SQL> SELECT nomCie, codeCie FROM COMPANIE
      2   WHERE INSTR('&Cies', CodeCie) > 0;
    ancien   2 :  WHERE INSTR('&Cies', CodeCie) > 0
    nouveau   2 :  WHERE INSTR('01,02,03,04,05', CodeCie) > 0
     
    NOMCIE                                             CODECIE
    -------------------------------------------------- ----------
    Cie 02                                             02
    Cie 04                                             04
     
    SQL>

  3. #3
    Membre actif Avatar de Poussy-Puce
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 357
    Points : 222
    Points
    222
    Par défaut
    C'est SQL Server 8.0...

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @maListe VARCHAR(maTaille)
    SELECT @maListe = ISNULL(@maListe, '') + CAST(maColonne AS VARCHAR(10)) + ','
    FROM dbo.maTable
    Vous devez utiliser CAST si votre colonne est de type numerique, par exemple

    @++

Discussions similaires

  1. [SQL] [VBA] signe de ponctuation dans une variable
    Par baboulilie dans le forum Access
    Réponses: 5
    Dernier message: 30/01/2007, 18h12
  2. [Sql Server 8.0]Requête dans une chaîne avec Cursor à executer
    Par Nicodemus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/11/2006, 17h34
  3. [SQL Server 8] Un UNION dans une VIEW
    Par Baquardie dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/05/2006, 21h36
  4. [ms sql server 2000] top 1 dans une condition de jointure ?
    Par sylvkin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/10/2005, 17h10
  5. ASP/ SQL Server : resultat de RS dans une cellule.
    Par joe_le_mort dans le forum ASP
    Réponses: 2
    Dernier message: 11/08/2005, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo