Bonjour
J'ai une base de données comme celle-ci, dans laquelle je dois sélectionner les plages en vert (à partir de la lettre b jusqu'à la fin du texte)
Je fais cette requete qui me renvoie une erreur: "cette sous-requête peut renvoyer au plus un enregistrement"
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM test WHERE ID > (SELECT ID FROM test WHERE Lettre Like "*b*") AND ID < (SELECT ID FROM test WHERE numEnonce < (SELECT numEnonce FROM test WHERE ID < ID - 1));
Je suppose que le problème vient du fait que la requête renvoie plusieurs lignes qui contiennent b et que les plages à sélectionner se chevauchent
Donc je refais cette requete avec TOP 1 en plus qui me renvoie une ligne vide:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM test WHERE ID > (SELECT TOP 1 ID FROM test WHERE Lettre Like "*b*") AND ID < (SELECT ID FROM test WHERE numEnonce < (SELECT numEnonce FROM test WHERE ID < ID - 1));
Cette même requête marche si je fais (mais je n'ai que le premier bloc sans la première ligne, ce qui est acceptable pour l'instant):
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM test WHERE ID > (SELECT TOP 1 ID FROM test WHERE Lettre Like "*b*") AND ID < 6;
Est-il possible de faire une sélection de plages non contigues en SQL ou faut-il utiliser une macro et de la récursivité?
merci d'avance
Partager