2016-04-18 12 views
-1

Das Muster für die jeweilige Spalte soll wie sein unterDatensätze aus einer bestimmten Spalte mit einem bestimmten Muster in Oracle-Datenbank

WAP 
WAPA 
WAPB 
or 
WAP 
AWAP 
XWAP 

oder

ABC 
XABCY 
ZABCO 

so weiter ...

und WAP ist nicht konstant, das kann auch variieren. Ich habe versucht wie '% A_Z%'; aber nicht funktioniert wie ausgenommen

+0

Mögliches Duplikat [abrufen Datensätze aus einer bestimmten Spalte in Oracle] (http://stackoverflow.com/questions/36704056/retrieve-records-from-a-specific-column-in-oracle) – MT0

Antwort

0

Wenn Sie ein Muster suchen:

  • ein Wort
  • dann ein Nicht-Wortzeichen für Wort gefolgt, dieses Wort
  • die Wiederholungen des vorherigen Muster enthält,

Dann könnten Sie so etwas wie:

Oracle-Setup:

CREATE TABLE tests(value) AS 
SELECT 'WAP WAPA WAPB' FROM DUAL UNION ALL 
SELECT 'WAP AWAP XWAP' FROM DUAL UNION ALL 
SELECT 'ABC XABCY ZABCO' FROM DUAL UNION ALL 
SELECT 'ABCDE,XABCDE,XXABCDE,ABCDEXXY,XABCDEYY' FROM DUAL; 

Abfrage:

SELECT * 
FROM Tests 
WHERE REGEXP_LIKE(value, '^(\w+)(\W\w*\1\w*){2,}$'); 

Ausgang:

VALUE         
-------------------------------------- 
WAP WAPA WAPB       
WAP AWAP XWAP       
ABC XABCY ZABCO       
ABCDE,XABCDE,XXABCDE,ABCDEXXY,XABCDEYY 
+0

ist kein Dreiwort, das ist nur ein Beispiel. Ich suche nach irgendwelchen Zeichen, die ein Wort bilden und basierend auf diesen Wörtern sollte es in der spezifischen Spalte aussehen, die mit diesem Wort verwandt ist, wie wenn ABCDE ein Wort ist, dann sollte diese Spalte Datensätze in Bezug auf diese Welt wie ABCDE, XABCDE abrufen können , XXABCDE, ABCDEXXY, XABCDEYY – Pradeep

+0

@ Pradeep Aktualisiert - Ich habe das neue Muster, das Sie angegeben haben, angepasst, aber Ihre Anforderungen sind sehr unklar. Bitte bearbeiten Sie Ihre Frage mit einer detaillierten Beschreibung Ihrer erwarteten Tabellenwerte, wie Sie erwarten, dass die Werte übereinstimmen und der erwarteten Ausgabe. – MT0

+0

sollte die Ausgabe für ein bestimmtes Wort so sein, wenn der Wert etwas wie AABBCC ist, dann ergibt AABBCC XAABBCC YAABBCC könnte ich einmal meine Frage – Pradeep