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

MS SQL Server Discussion :

Variable de type liste


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Variable de type liste
    Hello,

    J'ai un petit soucis en (transact) SQL :

    J'aimerais définir une variable "de type liste", pour l'utiliser avec un "IN", mais je ne trouve pas la bonne syntaxe.

    Un petit exemple pour être plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DECLARE @ma_variable_liste mon_type_que_je_sais_pas_definir
     
    SET @ma_variable_liste = (1,2,3)
     
    SELECT  *
    FROM    compte
    WHERE   numero IN @ma_variable_liste
    Voilà, merci d'avance (et désolé si la réponse est évidente ou déjà postée, mais j'ai rien trouvé en 10 minutes de recherche... ce qui constitue ma borne max )

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    il faut creer une table temporaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE #tempo (numero int)
     
    --tu mets 1,2 et 3 dans ta table avec une requete insert
     
    SELECT  *
    FROM    compte
    WHERE   numero IN (SELECT numero FROM #toto)
    j'suis vert !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    arrrrrgh y'a vraiment pas plus simple ?

    En fait mon but est de sortir tous les paramètres de ma requête et de les regrouper en tête de script, pour que des utilisateurs "pas trop doués en SQL" puissent les définir sans problèmes et sans avoir à gratter dans le code...

    Donc s'ils doivent faire des INSERT, ça devient déjà moins pratique.

    Merci pour la réponse aussi rapide en tout cas.

  4. #4
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    sinon tu demande aux utilisateurs de rentrer les differents numéro de compte séparées par des virgules.

    tu mets ca dans une variable varchar(500) et tu fait une requete dynamique :

    ex : l'utilisateur saisie "1,2,3"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    CREATE PROCEDURE sp_toto
     
    	@comptes varchar(500)
    /* dans @comptes on as '1,2,3' */
     
    AS
     
    DECLARE @QUERY varchar(2000)
    SET @QUERY = 'SELECT  *
    FROM    compte
    WHERE   numero IN (' + @comptes + ')'
    /* la requete est :
    SELECT  *
    FROM    compte
    WHERE   numero IN (1,2,3), ensuite on l'execute : */
    EXEC(@QUERY)
    j'suis vert !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    c'est vers cette solution que je suis parti effectivement.

    merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/01/2013, 11h01
  2. Tmap - initialiser une variable de type List
    Par jeanphi45 dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 23/03/2012, 21h12
  3. Variable de type liste
    Par DeveloppeurWeb dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/06/2011, 19h46
  4. Définition des variables de type List
    Par hibou107 dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 21/10/2010, 16h44
  5. Trier une variable de type List(Of T)
    Par Kropernic dans le forum VB.NET
    Réponses: 9
    Dernier message: 23/09/2010, 14h01

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