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
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
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.
Ni numéro, ni enregistrement, ni tableaux n'existe en SQL !
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.
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/ * * * * *
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 :
J'ai par exemple 5 enregistrements, je souhaite récupérer les numéros dans une variable afin de les exploiter par la suite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT NUMERO FROM TABLE
.Matt
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
@+
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
En cherchant dans la FAQ SQL SERVER j'ai trouvé ce bout de code :
Je vais essayer de m'en servir.
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
.Matt
EDIT :
Non ça ne fonctionne pas lorsqu'il y a plus d'un retour.
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 CREATE PROCEDURE RecupVariable AS DECLARE @VAR AS VARCHAR(10) SET @VAR = (SELECT champ FROM Table WHERE ..) PRINT @VAR
et ceci pour l'appel
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
Marchera déja mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DECLARE @o VARCHAR(MAX) EXEC RecupVariable @o OUTPUT PRINT @o
Mais pourquoi dans une variable alors que vous pouvez avoir en ensemble de résultat en sortie de votre procédure stockée ?
@+
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 :
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 @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))
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 @tFieldMsg*137, Niveau*15, État*2, Ligne*11
La variable scalaire "@tField" doit être déclarée.
Bonjour,
En fait, Il fallait peut être commencer par ça ! Quelles vérifications ?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.
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.
@+
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
Pouahhh excusez moi
Pas besoin de faire un PRINT lorsque l'on fait un select
Excusez moi, mais ca ne veut rien dire. C'est beaucoup trop vague.Des vérifications dans un FOR suivant le nombre de valeurs récupérées et des IF
Pourriez vous mieux formaliser votre besoin et poster la structure de vos tables ?
Merci
@+
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 :
Aprés à moi de l'adpdater en fonction de mes besoins pour le traitements des valeurs .
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager