sql >> Database >  >> RDS >> Sqlserver

SQL Server 2008:vreemde fout in opgeslagen procedure

U kunt een variabele niet gebruiken in de order by clausule. In plaats daarvan moet je iets doen als:

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

Wees echter voorzichtig, want als de kolommen van verschillende typen zijn, kunnen er onverwachte dingen gebeuren of kan er een andere fout optreden. (Er is een alternatief om dynamische SQL te gebruiken, maar dat zou ik niet aanraden.)

Ook de naam @groupby is een beetje misleidend. "Groeperen" is een SQL-term die gelijk is aan "aggregatie". Zou niet @OrderBy of @SortBy geschikter zijn?



  1. Bereken de afstand tussen twee lat-lange punten in Oracle

  2. Hoe kan ik op één na alle rijen van elke set duplicaten in een tabel selecteren en/of verwijderen?

  3. Vergelijk datumwaarden tussen 3 kolommen in SQL Server en haal informatie over activa op in SQL Server

  4. Hoe voeg ik een where-clausule toe aan een Hibernate @OneToMany expliciete join-tabelentiteit?