2016-06-28 6 views
0

Ich habe die folgende Tabelle.Teilstring einer Spalte aus einem anderen SQL

+--------------------+-----+ 
|fardet_cd_fare_basis|part2|  
+--------------------+-----+ 
|   MEO00RIG| 00R| 
|   MEO00RIG| RIG| 
|   MEO00RIG| I| 
+--------------------+-----+ 

ich von „fartdet_cd_fare_basis“ dem ersten Teil der Kette bis zum Erscheinen von „Teil2“ extrahieren muß, wäre ein Beispiel:

+--------------------+-----+--------+ 
|fardet_cd_fare_basis|part2|  num| 
+--------------------+-----+--------+ 
|   MEO00RIG| 00R|  MEO| 
|   MEO00RIG| RIG| MEO00| 
|   MEO00RIG| I| MEO00RI| 
+--------------------+-----+--------+ 

ich mit Spark-SQL arbeiten bin, aber Ich habe die SQL-Lösung verwendet. Irgendwelche Ideen?

+0

Können Sie die erwartete Ausgabe erneut richtig erklären? Es ist schwer zu verstehen. Und benötigen Sie für die Beispieldaten nur eine Zeile in der Ausgabe? Wenn ja, was ist die Logik und wenn nein, was und warum sollte die Ausgabe anderer Zeilen sein. – Utsav

+0

Es ist jetzt besser verstanden? – nest

+0

Ich habe gerade geantwortet. Wenn es für Sie funktioniert hat, akzeptieren Sie die Antwort, damit die Frage geschlossen werden kann. – Utsav

Antwort

1

Ich denke ich verstehe, was Sie wollen. Versuche dies.

LiveDemo

select fardet_cd_fare_basis,part2, 
    substr(
      fardet_cd_fare_basis, 
      1, 
      instr(fardet_cd_fare_basis,part2)-1 
     ) as der_sub 
from your_table 

Ausgabe

+----------------------+--------+---------+ 
| fardet_cd_fare_basis | part2 | der_sub | 
+----------------------+--------+---------+ 
| MEO00RIG    | (null) | (null) | 
| MEO00RIG    | O  | ME  | 
| MEO00RIG    | 00R | MEO  | 
| MEO00RIG    | RIG | MEO00 | 
| MEO00RIG    | 00  | MEO  | 
| MEO00RIG    | I  | MEO00R | 
| MEO00RIG    | R  | MEO00 | 
| MEO00RIG    | 00  | MEO  | 
+----------------------+--------+---------+ 

Hinweis: Wenn part2 existiert nicht in der ersten Spalte, die Sie nichts in der Ausgabe erhalten. Auch wenn part2 Null ist, dann würden Sie null erhalten. Sie können sie getrennt behandeln, wenn Sie möchten.

+0

Vielen Dank. Ich werde versuchen, wenn möglich, diese Antwort sql Funke zu implementieren. Wenn jemand weiß, wie es geht ... – nest