Ce problème pourrait être un peu trop compliqué pour SQL à gérer, mais puisque j'ai de jolies compétences SQL intermédiaires, peut-être une personne plus connue dans SQL que moi saura comment résoudre le problème ci-dessous. P>
Je cherche à isoler les observations qui mentionnent un mot clé qui se produisent après une phrase. Un exemple serait comme ci-dessous: Pour variable free_text, je veux isoler où le mot orange est dit après la phrase excluant ceci: p>
free_text = "Y compris ceci: p>
Le meilleur fruit est une pomme p>
En excluant ce: p>
Le pire fruit est une orange " p>
Techniquement, je pourrais juste faire où libérer_text n'aiment pas "% orange%" mais ce n'est pas ce que je cherche. Je cherche spécifiquement d'isoler pour quand un mot est dit après la phrase excluant cela. P>
Quelqu'un a des idées? P>
3 Réponses :
Ceci trouvera le mot J'ai utilisé Après ma position d'où je vais commencer ma recherche, et j'avais le mot clé que j'ai besoin de trouver qu'il était facile d'utiliser des fonctions de chaîne Voici une démo p> p> orange code> dans la chaîne après la phrase à l'exclusion de ce code> position < / Code> Fonction Pour trouver la position de la chaîne à l'exclusion de ce code> car je voulais démarrer ma recherche après cette chaîne. La fonction code> la position code> renvoya la position du caractère E code> de la chaîne à l'exclusion de ce code> de sorte que je devais ajouter de la longueur de cette expression pour trouver la position recherchée d'où je commence ma recherche. p> Stros code> et substrant code> Pour vérifier si la valeur de chaîne dans la colonne free_text code> contient Word orange code>. p>
Si je comprends vos échantillons de données correctes, cette logique suivante devrait vous aider à obtenir votre sortie attendue-
Démo ici P>
WITH your_table (FREE_TEXT)
AS
(
SELECT 'T Including This: The best fruit is an apple' UNION ALL
SELECT 'Including This: The best fruit is an orange' UNION ALL
SELECT 'Excluding This: The best fruit is an apple' UNION ALL
SELECT 'T Excluding This: The worst fruit is an orange'
)
SELECT *
FROM your_table
WHERE strpos(FREE_TEXT, 'Excluding This:') = 0
OR strpos(FREE_TEXT, 'Excluding This:') > strpos(FREE_TEXT, 'orange')
est-ce ce que vous voulez?
Quelle est l'attente de production? Vous voulez l'ensemble
free_text code> pour être retourné lorsqu'il y a unorange code> aprèsexcluant ce code>?