Il y a toujours la possibilité avec des LEFT JOIN mais la gestion de l'égalité est vraiment chiante, il n'y a pas un opérateur qui fasse (A.ID=B.ID OR (A.ID IS NULL AND B.ID IS NULL)) ?
Je ne crois pas qu'il y ait un équivalent de MINUS standard en SQL, mais comme le standard est déjà riche, il existe toujours un moyen de contourner cela. De plus MINUS n'est pas très important par rapport à UNION, UNION ALL, INTERSECT...
Peut-être que MINUS sera inclue un jour dans le standard ?
Je ne comprends pas bien ... Là il ne s'agit pas de rechercher un tuple dans un ensemble prédéfini mais dans le résultat d'une requête.
Un ensemble prédéfini :
SELECT * FROM vehicule WHERE categorie IN ('voiture', 'camion', 'moto');
Mon soucis c'est qui va écrire la syntaxe supportée ?
La requête que j'ai écris est standard SQL, et fonctionne au moins sous PostgreSQL, Oracle, SQL Server, MySQL, MariaDB...
Alors je ne comprend pas du tout ce que tu veux faire ... C'est un LinQ ?
LINQ "essaye" de faire SQL, moi je souhaiterais "réellement" faire du SQL.
Comme pour c:forEach@var ou f:selectItems@var de JSF ?
Oui, c'est dans l'idée.
Pour faire l'injection de paramètre ?
C'est juste pour faire :
1 2 3 4 5 6 7 8 9 10
| ResultSet result := SELECT value.id, value.name
FROM listeClient
WHERE value.name LIKE '%Pierre-%'
ORDER BY value.id DESC;
// Au lieu de :
ResultSet result := SELECT value.getId(), value.getName()
FROM listeClient
WHERE value.getName() LIKE '%Pierre-%'
ORDER BY value.getId() DESC; |
Le truc avec Hibernate, c'est que c'est pas super pour écrire des requêtes complexes en "mode objet". Du coup il faut passer par une requête HQL (Hibernate Query Language) ou DQL (Doctrine Query Language) entre des guillemets affreux (chaine de caractères). L'IDE ne permet pas d'indiquer si la syntaxe de la requête HQL est conforme ou non avant compilation + test réel.
Partager