Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to use SQL Select UNION with TOP
Message
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
01303352
Message ID:
01303377
Vues:
23
This message has been marked as the solution to the initial question of the thread.
>I need to create a cursor that includes 50 records above a certain PK value and 50 records below this PK value. The way I want to do it (I see no other method) is to use TOP and UNION.
>
>Here is what I tried (unsuccessfully though):
>
>
>select TOP 50 * from MyTable where PK_VAL > nVar Order by PK_VAL ;
>UNION ALL ;
>select TOP 50 * from MyTable where PK_VAL < nVar Order by PK_VAL DESC
>
>
>Can anybody see what is wrong with the above syntax?

Only one ORDER BY is allowed per UNION. You can use derived tables to get around it
SELECT * FROM (select TOP 50 * from MyTable where PK_VAL > nVar Order by PK_VAL) dt1 ;
UNION ALL ;
SELECT * FROM (select TOP 50 * from MyTable where PK_VAL < nVar Order by PK_VAL DESC) dt2
--sb--
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform