FirebirdSQL logo

Utilisation de ROWS dans UNION.

Lorsque vous utilisez ROWS avec l’instruction UNION, il sera appliqué au jeu de données fusionné, et doit être placé après la dernière instruction SELECT.

Si vous voulez restreindre les jeux de données retournés à une ou plusieurs instructions SELECT dans UNION, vous pouvez utiliser les options suivantes :

  1. Utilisez FIRST/SKIP dans ces instructions SELECT. Rappelez-vous que vous ne pouvez pas utiliser l’expression ORDER BY localement dans SELECT à l’intérieur de UNION - seulement globalement, à l’ensemble des données comprimées ; . Convertir les SELECT en tableaux dérivés avec des expressions ROWS.

Exemples

Vous trouverez ci-dessous les exemples précédemment utilisés pour la démonstration de FIRST/SKIP.

La requête suivante retournera les 10 premiers noms de la table PEOPLE (les noms seront également triés, voir "Exemples"). ORDER BY).

SELECT id, name
FROM People
ORDER BY name ASC
ROWS 1 TO 10

ou son équivalent

SELECT id, name
FROM People
ORDER BY name ASC
ROWS 10

La requête suivante renvoie tous les enregistrements de la table PEOPLE sauf les 10 premiers noms :

SELECT id, name
FROM People
ORDER BY name ASC
ROWS 11 TO (SELECT COUNT(*) FROM People)

Et cette requête renverra les 10 derniers enregistrements (notez les parenthèses) :

SELECT id, name
FROM People
ORDER BY name ASC
ROWS (SELECT COUNT(*) - 9 FROM People)
TO (SELECT COUNT(*) FROM People)

Cette requête renvoie les lignes 81 à 100 de la table PEOPLE :

SELECT id, name
FROM People
ORDER BY name ASC
ROWS 81 TO 100