0
votes

En utilisant SQL pour exclure un mot qui vient après une phrase

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.

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:

free_text = "Y compris ceci:

Le meilleur fruit est une pomme

En excluant ce:

Le pire fruit est une orange "

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.

Quelqu'un a des idées?


1 commentaires

Quelle est l'attente de production? Vous voulez l'ensemble free_text pour être retourné lorsqu'il y a un orange après excluant ce ?


3 Réponses :


0
votes

Ceci trouvera le mot orange dans la chaîne après la phrase à l'exclusion de ce xxx

J'ai utilisé position < / Code> Fonction Pour trouver la position de la chaîne à l'exclusion de ce car je voulais démarrer ma recherche après cette chaîne. La fonction la position renvoya la position du caractère E de la chaîne à l'exclusion de ce de sorte que je devais ajouter de la longueur de cette expression pour trouver la position recherchée d'où je commence ma recherche.

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 Stros et substrant Pour vérifier si la valeur de chaîne dans la colonne free_text contient Word orange .

Voici une démo


0 commentaires

0
votes

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') 


0 commentaires

0
votes

est-ce ce que vous voulez? XXX


0 commentaires