Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels 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 28/04/2006, 10h46   #1
Invité de passage
 
Inscription : avril 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 2
Points : 1
Points : 1
Par défaut [ASE][T-SQL]Difficulté dans une SP: order by variable

Bonjour je rencontre un problème pour trier les résultats d'une recherche

Je voudrais faire dans une proc stockée un select * from X order by @num

Or Sybase ne veut pas compiler ma proc car order by ne prend pas de paramètres

Auriez vous une solution de contournement?

Merci d'avance
sportbillyboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 13h35   #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
Ceci suppose une version de Sybase relativement récente (12.0, si mes souvenirs sont bons), et que @num est un varchar():

Code :
1
2
3
4
 
declare @cmd varchar(255)
SELECT @cmd = "select * from X order by " + @num
exec(@cmd)
Michael
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 14h49   #3
Invité de passage
 
Inscription : avril 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 2
Points : 1
Points : 1
merci!
sportbillyboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2006, 11h56   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 17
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 17
Points : 10
Points : 10
Bizarrement, Sybase refuse les variables dans un ORDER BY, mais les autorise dans un CASE... même si celui-ci est dans l'ORDER BY.

Si la liste des cas possibles est limitée, vous pouvez donc écrire
Code :
1
2
 
SELECT * FROM ma_table ORDER BY CASE @num WHEN 1 THEN 1 WHEN 2 THEN 2 ELSE 3 END
Semhur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h07.


 
 
 
 
Partenaires

Hébergement Web