[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    Registriert seit
    May 2002
    Beiträge
    1.121
    Zitat Zitat von sam1502 Beitrag anzeigen
    Hallo Zusammen,
    ich habe eine email Adreese, die will ich mit eine SQL Abfrage in 2 Felder speichern

    eingabe: testtt@prvider.de

    ich möchte gerne testtt in Spalte1 und provider.de in Spalte2 haben.
    kann mir jemand helfen. Vielen Dank im Voraus.

    Sam
    Hallo Sam,

    eigentlich hättest Du dafür ja ein neues Thema auf machen können, aber egal.
    Das SQL müsste in etwa so aussehen:
    PHP-Code:
    update MyLib/MyFile                                               
    set name     
    Substring(email1, (position('@' in email)-1) ),
        
    provider Substring(email, (position('@' in email)+1),     
                                    
    50 - (position('@' in email)+1)) 
    Wo bei ich jetzt Unterstellt habe, das das Feld "EMAIL" 50 Stellen lang ist.

    Gruß Ronald

  2. #14
    Registriert seit
    May 2002
    Beiträge
    1.121
    so sollte es dann auch gehen ohne zu wissen wie lang das Feld EMAIL ist
    PHP-Code:
    update qtemp/test                                               
    set name     
    Substring(email1, (position('@' in email)-1) ),
        
    provider Substring(email, (position('@' in email)+1),     
                                    (
    char_length(trim(email)) -     
                                     
    position('@' in email)+1)) 
    Gruß Ronald

  3. #15
    Registriert seit
    Nov 2007
    Beiträge
    27
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Hi,

    mir fehlt irgendwo eine Tabelle in Deinem SQL-Statement.
    Aber versuch mal folgendes:

    PHP-Code:
    insert into Lib/File_1                                    
           with x 
    as (Select distinct(Feld_Xfrom Lib/File_2   
                         where Feld_X like 
    '%D01')            
           
    select Feld_aFeld_bFeld_XFeld_d, ....
           
    from Lib/File_3 cross join x    
           Where 
    ........ 
    Birgitta
    Hi zusammen,
    ich habe ein ganz ähnliches Problem.

    Ich versuche Daten aus Tabelle A in Tabelle B zu schreiben. Hierbei muss aber für jeden Satz in B die ID um 1 erhöht werden. Mit Max(ID) versucht er einen doppelten Schlüsselwert zu erzeugen, da die Dummy-Tabelle x nur einmal erzeugt wird. Geht das auch pro Satz?

  4. #16
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hallo,

    falls Du auf Release V5R4 oder höher bist, könntest Du die Funktion ROW_NUMBER verwenden.

    Vorausgesetzt Tabelle 1 und Tabelle 2 haben den gleichen Aufbau, außer dass in Tabelle 2 das 1. Feld (für den Zähler zusätzlich ist), könntest Du das folgende probieren:

    PHP-Code:
    insert into mytable2                                        
    With y 
    as (Select Max(RowNbr) + as LastRow from MyTable2),
         
    as (Select Row_Number() Over() + LastRowa.*        
                 
    from mytable a cross join y)                   
    select from x 
    Ansonsten wäre es möglich ein Sequence-Objekt anzulegen, mit Start-Wert maximale Satz-Nr. in Tabelle 2.
    Beim Insert wird dann der Zähler aus dem Sequence-Objekt ermittelt.

    PHP-Code:
    CREATE SEQUENCE MySchema/MySeq as BIGINT              
            START WITH 327 INCREMENT BY 1               
            NO ORDER NO CYCLE NO MINVALUE NO MAXVALUE   
            CACHE 20
    ;

    insert into mytable2                
         Select Next Value from mySeq
    a.*   
            
    from mytable1
    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

  5. #17
    Registriert seit
    Nov 2007
    Beiträge
    27
    Hallo Birgitta,

    Option 1 scheidet leider aus. Release ist V4R4 und die Tabellen sind auch vollkommen verschieden.

    Sofern Option 2 bei unserem Release funktioniert, werde ich das am Montag mal probieren. Ansonsten muss ein kleines RPG her.

  6. #18
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Die zweite Variante wird auch nicht funktionieren, da Sequence-Objekte erst mit Release V5R3 eingeführt wurden.

    Da wird wohl die einzige Alternative "zu Fuß", sprich Programm heißen.

    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

  7. #19
    Registriert seit
    Nov 2007
    Beiträge
    27
    Schade Aber der Freitag bringt eh selten Gutes

  8. #20
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ich habe zwar den Thread nur oberflächlich gelesen, aber 2 SQL Statements müssten es eigentlich auch tun
    create table loeschMichNachher as(
    select ...
    ) with data

    insert into ... select max(...) + rrn(loeschMichNachher), ...


    D*B

    Zitat Zitat von B.Hauser Beitrag anzeigen
    Die zweite Variante wird auch nicht funktionieren, da Sequence-Objekte erst mit Release V5R3 eingeführt wurden.

    Da wird wohl die einzige Alternative "zu Fuß", sprich Programm heißen.

    Birgitta
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #21
    Registriert seit
    Nov 2007
    Beiträge
    27
    Danke für den Tip. Hab es nun aber mit einem Programm gelöst. Das war am Ende die sicherste und schnellste Lösung. So war noch vor dem ersten Kaffee wieder alles im Lot

Similar Threads

  1. SQL: Insert bei NULL
    By woki in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 31-10-06, 10:21
  2. SQL INSERT aus JOIN
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 20-01-06, 15:23
  3. SQL Insert: Zeichenbegrenzung???
    By Deficiency in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 13-01-06, 09:00
  4. SQL Insert ein Feld Hochzählen
    By linguin in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-01-06, 15:46
  5. SQL Insert
    By Deficiency in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 01-12-05, 11:22

Berechtigungen

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