Question : Using une variable dans l'ORDRE PAR clause d'un procédé stocké de SQL.

J'écris un procédé stocké qui sera employé pour courir une question CHOISIE avec l'ORDRE multiple PAR des colonnes.  Je passerai dans l'ORDRE PAR des paramètres -- @FIELD1, @FIELD2, par exemple.  Le problème est, SQL ne me laissera pas employer une variable dans l'ORDRE PAR clause.

I veulent que le proc ressemble à ceci : udp_MULTI_SORT @FIELD1 VARCHAR (15),
AS

SELECT de PROCÉDÉ du

CREATE de @FIELD2 VARCHAR (15) * DE L'ORDRE RM00101 PAR @FIELD1, erreur de @FIELD2

The SQL que j'obtiens quand j'essaye ceci est : l'article CHOISI du

The identifié par l'ORDRE PAR le numéro 1 contient une variable en tant qu'élément de l'expression identifiant une position de colonne. On permet seulement des variables en passant commande par une expression mettant en référence une colonne name.

Does que n'importe qui savent une manière autour de ceci ?
class= de

Réponse : Using une variable dans l'ORDRE PAR clause d'un procédé stocké de SQL.

comme le message d'erreur indique : changer les noms de champ en positions de champ (type de données international), OU vous devez changer en un SQL « dynamique » à un certain point
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
CRÉER l'udp_MULTI_SORT @FIELD1 VARCHAR (15), @FIELD2 VARCHAR (15) de PROCÉDÉ
AS
CHOISIR * 
 DE RM00101 
ORDRE PAR CASE 
   QUAND @FIELD1 = « Col1 » PUIS Col1 
   QUAND @FIELD1 = « Col2 » PUIS Col2
   --- etc. ----
  EXTRÉMITÉ
, CAS 
   QUAND @FIELD2 = « Col1 » PUIS Col1 
   QUAND @FIELD2 = « Col2 » PUIS Col2
   --- etc. ----
  EXTRÉMITÉ

note de // : dans la suggestion ci-dessus, vous pourriez devoir ajouter plus de « rapports de cas » pour s'adapter pour différents types de données
 



OU, la méthode rapide et sale


CRÉER l'udp_MULTI_SORT @FIELD1 VARCHAR (15), @FIELD2 VARCHAR (15) de PROCÉDÉ
AS
exec (CHOISIR * À PARTIR DE L'ORDRE RM00101 PRÈS [« + @FIELD1 + »], [« + @FIELD2 + »] ')
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us