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

Langage SQL Discussion :

Mettre numéros dans tableau


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut Mettre numéros dans tableau
    Bonjour,

    je souhaite à partir d'une requête SELECT mettre les numéros des enregistrement présent dans une table dans un tableau d'entier.

    Comment puis je faire?


    Merci,

    .Matt

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    Ce n'est pas vraiment du SQL, il va falloir nous préciser au minimum votre SGBD, et le DDL de votre table au passage.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mettre les numéros des enregistrement présent dans une table dans un tableau d'entier.
    Ni numéro, ni enregistrement, ni tableaux n'existe en SQL !
    Votre demande n'a donc aucun sens !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Aucun sens PTDR

    Je ne souhaite manquer de respect à personne.
    Mais si je demande sur un forum ce genre d'information c'est que j'en ai besoin et que j'ai déjà réfléchis à la façon dont j'allais exploiter les données que je pourrai extraire avec cette solution.

    Aprés que je me soit mal exprimé s'en est une autre, mais dire que ça n'a aucune sens ....

    Je m'explique mieux :

    En fait, je suis en train de faire une procédure stockée sous SQL SERVER 2005.
    Et j'ai besoin de récupérer les numéros d'enregistrement d'une table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NUMERO FROM TABLE
    J'ai par exemple 5 enregistrements, je souhaite récupérer les numéros dans une variable afin de les exploiter par la suite.


    .Matt

  5. #5
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonjour,

    Bon, il aurait fallu poster dans SQL Serveur mais soit.

    En SQL, on ne parle pas d'enregistrements mais de lignes. Ces lignes, non justement aucun numéro. Elles peuvent avoir un rang, si on précise le sens de tri.

    Regardez du côté de ROW_NUMBER

    @+

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    En fait ce n'est pas ce numéros que je souhaite.

    j'ai une table qui s'appelle CLIENTS par exemple avec :
    - num_cli
    - prenom_cli


    Ce que je souhaite récupérer ce sont tous les num_cli dans une même variable.


    .Matt

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    En cherchant dans la FAQ SQL SERVER j'ai trouvé ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE PROCEDURE RecupVariable AS
    DECLARE @VAR AS VARCHAR(10)
    SET @VAR = (SELECT champ FROM Table WHERE ..) 
    PRINT @VAR
    Je vais essayer de m'en servir.


    .Matt


    EDIT :
    Non ça ne fonctionne pas lorsqu'il y a plus d'un retour.

  8. #8
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE PROCEDURE RecupVariable AS
    DECLARE @VAR AS VARCHAR(10)
    SET @VAR = (SELECT champ FROM Table WHERE ..) 
    PRINT @VAR
    Ca, ca ne va pas marcher. Vous avez plusieurs lignes dans votre ensemble de resultats...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE PROCEDURE RecupVariable 
    @VAR AS VARCHAR(MAX) OUTPUT
    AS
    BEGIN
    SELECT @VAR = COALESCE(@VAR, '') + champ + ',' FROM Table WHERE ...
    END
    et ceci pour l'appel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @o VARCHAR(MAX)
    EXEC RecupVariable @o OUTPUT
    PRINT @o
    Marchera déja mieux.


    Mais pourquoi dans une variable alors que vous pouvez avoir en ensemble de résultat en sortie de votre procédure stockée ?


    @+

  9. #9
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    En fait après la récupération du résultat, je dois établir des vérifications de traitements dans cette même procédure.

    Pour votre solution ça marche mais ça me met tout dans une même chaîne de caractère.

    Comment dois je procéder pour que les valeurs soient accessible de cette façon :

    @VAR[0]
    @VAR[1]
    @VAR[2]
    etc..


    Merci ,

    .Matt


    EDIT :

    Sinon j'ai trouvé ceci dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @idoc int
    	DECLARE @tField TABLE (FieldName varchar(100), Value varchar(100))
     
    	EXEC master.dbo.sp_xml_preparedocument @idoc OUTPUT, @KeyValue
     
    	INSERT INTO @tField (FieldName, Value)
    	SELECT FieldName, Value
    	FROM OPENXML(@idoc, '/Elements/Element', 2) WITH (FieldName varchar(100) 'Key', Value varchar(100))
    J'ai essayé de l'adapter à mon cas mais ça me dis que la variable scalaire @tField doit être déclarée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @tField TABLE (num_categorie int)
     
    	INSERT INTO @tField (num_categorie)
    	SELECT num_categorie
    	FROM ACHAT_CATEGORIE
     
     
    print @tField
    Msg*137, Niveau*15, État*2, Ligne*11
    La variable scalaire "@tField" doit être déclarée.

  10. #10
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonjour,

    En fait après la récupération du résultat, je dois établir des vérifications de traitements dans cette même procédure.
    En fait, Il fallait peut être commencer par ça ! Quelles vérifications ?

    Vous pouvez effectivement travailler avec une variable table.

    On ne fait pas un print d'une variable table, ca s'utilise comme un table -> select.

    @+

  11. #11
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Des vérifications dans un FOR suivant le nombre de valeurs récupérées et des IF.

    Comment puis je faire un print sur une variable TABLE tout en passant par un SELECT?


    .Matt

  12. #12
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Pouahhh excusez moi

    Pas besoin de faire un PRINT lorsque l'on fait un select

  13. #13
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Des vérifications dans un FOR suivant le nombre de valeurs récupérées et des IF
    Excusez moi, mais ca ne veut rien dire. C'est beaucoup trop vague.

    Pourriez vous mieux formaliser votre besoin et poster la structure de vos tables ?

    Merci

    @+

  14. #14
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Points : 144
    Points
    144
    Par défaut
    Re-Salut,

    Je te remercie avec ce que tu m'as donné j'arrive à remplir un tableau et ainsi exploiter mes valeurs

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    USE TDB_INFORMATIQUE;
     
    	DECLARE	@tField  TABLE (num_categorie int)
    	INSERT INTO @tField (num_categorie)
    	SELECT num_categorie
    	FROM ACHAT_CATEGORIE;
     
    WITH RESULTAT AS
    (
        SELECT num_categorie ,ROW_NUMBER() OVER (ORDER BY num_categorie) AS 'NumEnregistrement' FROM @tfield
    ) 
    SELECT * 
    FROM RESULTAT where NumEnregistrement = 1
    Aprés à moi de l'adpdater en fonction de mes besoins pour le traitements des valeurs .

    En fait je suis en train de développer un tableau de bord informatique.
    Pour ce tableau j'en ai besoin afin de stocker les numéros des Job de Sauvegarde afin d'aller récupérer les Stats dans la Base de Backup Exec directement .



    Merci à toi,

    .Matt

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/07/2013, 15h50
  2. Mettre valeur dans une case d'un tableau
    Par Invité dans le forum Débuter
    Réponses: 6
    Dernier message: 23/02/2012, 16h58
  3. pb de coord de tex dans tableau avec multitex
    Par sebh dans le forum OpenGL
    Réponses: 3
    Dernier message: 25/01/2004, 21h36
  4. [Syntaxe] mettre des ' dans une string ?
    Par souch dans le forum Débuter
    Réponses: 4
    Dernier message: 14/08/2003, 16h26
  5. Réponses: 6
    Dernier message: 14/02/2003, 16h52

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