Vraag : Het gebruiken van een variabele in de ORDE DOOR clausule van een SQL opgeslagen procedure.

Ik schrijf een opgeslagen procedure die om een UITGEZOCHTE vraag met veelvoudige ORDE in werking te stellen DOOR kolommen zal worden gebruikt.  Ik zal in de ORDE DOOR parameters overgaan -- @FIELD1, @FIELD2, bijvoorbeeld.  Het probleem is, zal SQL me niet een variabele in de ORDE DOOR clause.

I laten gebruiken wil proc als dit kijken:

CREATE PROCEDURE udp_MULTI_SORT @FIELD1 VARCHAR (15), @FIELD2 VARCHAR (15)
AS

SELECT * VAN ORDE RM00101 DOOR @FIELD1, @FIELD2

The SQL fout die ik wanneer ik probeer dit ben heb gekregen: bevat het UITGEZOCHTE die punt

The door de ORDE DOOR nummer 1 wordt geïdentificeerd0 een variabele als deel van de uitdrukking die een kolompositie identificeren. De variabelen worden slechts toegestaan wanneer het opdracht geven tot door een uitdrukking van verwijzingen voorziend een kolom name.

Does iedereen een manier rond dit kent?

Antwoord : Het gebruiken van een variabele in de ORDE DOOR clausule van een SQL opgeslagen procedure.

zoals de foutenmelding wijst op: verander de gebiedsnamen in gebiedsposities (gegevenstype int.), OF u moet in „dynamische“ sql op wat punt veranderen
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:
CRE�ëR PROCEDURE udp_MULTI_SORT @FIELD1 VARCHAR (15), @FIELD2 VARCHAR (15)
ZOALS
SELECTEER * 
 VAN RM00101 
ORDE DOOR COMPUTER-AIDED SOFTWARE ENGINEERING 
   WANNEER @FIELD1 = „Col1“ TOEN Col1 
   WANNEER @FIELD1 = „Col2“ TOEN Col2
   --- enz. 
  EIND
, COMPUTER-AIDED SOFTWARE ENGINEERING 
   WANNEER @FIELD2 = „Col1“ TOEN Col1 
   WANNEER @FIELD2 = „Col2“ TOEN Col2
   --- enz. 
  EIND

// nota: in bovengenoemde suggestie, zou u meer „gevalverklaringen“ kunnen moeten toevoegen voor verschillende gegevenstypes aan te passen
 



OF, de snelle en vuile methode


CRE�ëR PROCEDURE udp_MULTI_SORT @FIELD1 VARCHAR (15), @FIELD2 VARCHAR (15)
ZOALS
EXEC (SELECTEER * LANGS UIT ORDE RM00101 [„+ @FIELD1 +“], [„+ @FIELD2 +“] ')
Andere oplossingen  
 
programming4us programming4us