[NEWSboard IBMi Forum]
  1. #1
    cicero22 Besucher/Guest

    SQL -- trennen von Vorname Nachname

    Ich habe in einem Feld (nennen wir es mal KDNAM)
    Vorname und Nachname in einem stehen....
    Gehen wir mal davon aus, dass in 90% aller Fälle
    die beiden nur durch ein Blank getrennt sind....

    Gibt es eine SQL Funktion, mit der ich beide
    Namen "sauber" trennen kann - also z.B. nur den
    vermeindlichen Nachnamen herausbekomme?

    danke
    dirk

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von cicero22
    Ich habe in einem Feld (nennen wir es mal KDNAM)
    Vorname und Nachname in einem stehen....
    Gehen wir mal davon aus, dass in 90% aller Fälle
    die beiden nur durch ein Blank getrennt sind....

    Gibt es eine SQL Funktion, mit der ich beide
    Namen "sauber" trennen kann - also z.B. nur den
    vermeindlichen Nachnamen herausbekomme?

    danke
    dirk
    Eine Funktion gibt es dafür nicht, da musst Du schon etwas tricksen etwa in der Form:
    PHP-Code:
     Select KdNamsubstr(KDNamposstr(KDNam' ') + 1) as Name,    
                  
    substr(KDNam1posstr(KDNam' '))  as Vorname  
       from Adresse 
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    cicero22 Besucher/Guest
    Zitat Zitat von B.Hauser
    Eine Funktion gibt es dafür nicht, da musst Du schon etwas tricksen etwa in der Form:
    PHP-Code:
     Select KdNamsubstr(KDNamposstr(KDNam' ') + 1) as Name,    
                  
    substr(KDNam1posstr(KDNam' '))  as Vorname  
       from Adresse 
    Birgitta

    WOW! Super....
    Super Birgitta - Danke...

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Allerdings funktioniert das nur, wenn auch mindesten 1 Leerzeichen enthalten ist.
    Sollte das Feld (warum auch immer) komplett gefüllt sein, dann bricht der SQL ab.
    Daher eine kleine Ergänzung:

    Select KdNam,
    case when posstr(KDNam, ' ') > 0
    then substr(KDNam, 1, posstr(KDNam, ' ')-1)
    else ' '
    end as Vorname
    ,
    case when posstr(KDNam, ' ') > 0 and posstr(KDNam, ' ') < length(KDNam)
    then substr(KDNam, posstr(KDNam, ' ') + 1)
    else KDNam
    end as Name
    from Adresse
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    cicero22 Besucher/Guest

    Thumbs up

    Also - das ist echt mit das beste was ich bisher so gesehen habe - VIELEN DANK IHR BEIDEN..... DANKE!

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. SQL CLI Apis: Datenbankverindung trennen
    By sim in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 30-08-04, 07:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •