sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server 2008:Mærkelig fejl i lagret procedure

Du kan ikke bruge en variabel i order by klausul. I stedet skal du gøre noget som:

order by (case when @groupBy = 'VRNOA' then VRNOA
               . . .
          end)

Vær dog forsigtig, for hvis kolonnerne er af forskellig type, kan der enten ske uventede ting eller få en anden fejl. (Der er et alternativ til at bruge dynamisk SQL, men det vil jeg ikke anbefale.)

Også navnet @groupby er lidt misvisende. "Grupper" er et SQL-udtryk svarende til "aggregering". Ville ikke @OrderBy eller @SortBy være mere passende?



  1. Hvordan kontrolleres ydeevnen af ​​mysql-forespørgslen?

  2. Få fat i data fra MySQL ved hjælp af PHP i realtid?

  3. MySQL:indlejret sæt er langsomt?

  4. Grupper mysql resulterer i grupper på fire