« SPARQL Protocol and RDF Query Language/Requêtes de lecture » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎Modifier les résultats : mise en page et corrections
Ligne 154 :
ORDER BY permet d'ordonner le résultat de la requête. Il suffit de lui donner en argument la colonne selon laquelle il doit ordonner les résultats.
{{Exemple|titre=Exemple avec ORDER BY|contenu=
<source lang="sparql">
<pre>SELECT ?familyName
SELECT ?familyName
WHERE {
?x foaf:familyName ?familyName .
}
ORDER BY ?familyName</pre>
</source>
}}
 
Vous constatez qu'en effet, c'est ordonné selon l'ordre des noms, mais vous pouvez également spécifier plusieurs colonnes pour l'ordonnancement du résultat. Par exemple par nom puis par prénom :
{{exemple|titre=Exemple avec plusieurs colonnes|contenu=<presource lang="sparql">
SELECT ?familyName ?givenName
WHERE {
?x foaf:familyName ?familyName ;
foaf:givenName ?givenName; .
}
ORDER BY ?familyName ?givenName
</presource>}}
 
Si vous voulez trier une colonne par ordre inverse, il vous suffit d'ajouter le mot-clef DESC devant le nom de la colonne concernée entre parenthèses. Par exemple la même requête qu'au dessus avec les noms triés par ordre inverse :
{{exemple|titre=Exemple avec les noms triés par ordre inverse|contenu=<presource lang="sparql">
SELECT ?familyName ?givenName
WHERE {
?x foaf:familyName ?familyName ;
foaf:givenName ?givenName; .
}
ORDER BY DESC(?familyName) ?givenName </presource>}}
 
{{non}} ORDER BY permet de trier selon les colonnes récupérées uniquement. Ainsi, la requête suivante n'est pas conforme, étant donné que la colonne "givenName" ne fait pas partie des colonnes rapatriées (dans la clause SELECT).
{{exemple|titre=Requête non conforme car ?givenName n'est pas dans la clause SELECT|contenu=
<source lang="sparql">
<pre>SELECT ?familyName
<pre>SELECT ?familyName
WHERE {
?x foaf:familyName ?familyName ;
foaf:givenName ?givenName; .
}
ORDER BY ?familyName ?givenName
</presource>}}
 
==== LIMIT ====
LIMIT permet de limiter le nombre de lignes retournées.
{{exemple|titre=Exemple de requête avec une limite|contenu=
<source lang="sparql">
<pre>SELECT * WHERE {?x ?y ?z . } LIMIT 10 </pre>
SELECT *
WHERE {
?x ?y ?z .
}
LIMIT 10 </source>
}}
{{remarque|titre=Utilisation|contenu=
Ligne 195 ⟶ 209 :
OFFSET permet de n'afficher le résultat qu'à partir de la ligne indiquée.
{{exemple|titre=Exemple de requête qui ne donne le résultat qu'à partir de la cinquième ligne|contenu=
<source lang="sparql">
<pre>SELECT * WHERE {?x ?y ?z . } OFFSET 5 </pre>
SELECT *
WHERE {
?x ?y ?z .
}
OFFSET 5
</source>
}}
 
On peut indiquer en même temps une LIMIT et un OFFSET.
{{exemple|titre=Exemple qui n'affiche que 10 lignes de résultat à partir de la ligne 5|contenu=
<presource lang="sparql">SELECT *
WHERE {
?x ?y ?z .
}
OFFSET 5
LIMIT 10
</presource>
}}
On a maintenant tout ce qu'il nous faut pour naviguer de page en page dans les résultats d'une requête.