Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/09/2006, 11h38   #1
Invité de passage
 
Inscription : juin 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 27
Points : 4
Points : 4
Par défaut [T-SQL] Colonnes d'une table appelées avec une variable

Bonjour,

Je dispose d'une table dont les colonnes s'appellent ainsi :

R1, R2, R3....., R50

Est-il possible de n'en selectionner qu'une seule en faisant quelquechose du genre une boucle qui ferait un select sur la colonne Ri, où i est l'indice de la boucle ?

Merci.
Deedoo2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 13h33   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Je ne comprend pas très bien le but de l'opération, mais est-ce que qqch comme ceci t'irait?

Code :
1
2
3
4
5
6
7
8
9
10
11
 
declare @i int
declare @cmd varchar(100)
 
SELECT @i = 1
while @i < 50
begin
    SELECT @cmd = "select R"+convert(varchar, @i) + " from table ..."
    exec (@cmd)
    SELECT @i = @i + 1
end
Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 13h53   #3
Invité de passage
 
Inscription : juin 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 27
Points : 4
Points : 4
Ca me convient très bien !
En fait le but de la manoeuvre c'est de pouvoir "remettre en lignes mes colonnes".
En gros travailler sur mes colonnes une par une et les présenter ensuite en lignes.
Je pars de la table T(R1, R2,..., R50)
J'isole mes colonnes une à une et je fais le même traitement sur chacune (des group by essentiellement, selon les données des lignes)
Et je présente le résultat en lignes :
R1....données....
R2....données...
.
.
.
R50....données...

Y-a-t-il un moyen plus simple ?

Pour être plus précis, la structure de ma table est :
(A, B, C, D, E, F, R1, R2, R3...., R50)
Et je souhaite isoler à chaque fois les colonnes A à F + une des colonnes R. Les group by se feront sur les colonnes A à F.
Deedoo2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 15h18   #4
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Une des solutions aurait été de faire une collection d'UNION, mais avec 50 colonne à traiter (ce qui correspondrait à 50 UNION!) je ne pense pas que ce soit une bonne solution.

Il y a peut-être d'autres solutions pour faire ce pivot...

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h13.


 
 
 
 
Partenaires

Hébergement Web