Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [db2] Trovare buchi all'interno di una sequenza di char

    Ciao,
    non so se questa domanda è già stata fatta.
    Io ho una tabella DB2, che ha un campo di tipo testo (in particolare una lettera da A a Z).
    Devo riuscire a trovare il primo "buco" disponibile per inserire un nuovo record.
    Cioè:
    se sotto certe condizioni ho che i record sono valorizzati con
    A
    B
    D
    E
    ...
    voglio che la query mi torni il valore C.
    In sql ho scritto questa query (funzionante):

    select top 1 char(ascii(m.progressivo) + 1) as PrimoBuco
    from RTP_Richiesta as m
    left outer join RTP_Richiesta as r on ascii(m.progressivo) + 1 = ascii(r.progressivo)
    where r.progressivo is null
    and m.CodDirigente = '0217307'
    and m.anno = 2015
    and m.trimestre = 4

    Non riesco a scrivere l'equivalente per lavorare sulla tabella DB2.
    Ho scritto questo, ma non funziona:

    select chr(ascii(m.DD33_PROGR) + 1) as PrimoBuco
    from FASIADMN.FDDTBS33 as m
    left outer join FASIADMN.FDDTBS33 as r on ascii(m.DD33_PROGR) + 1 = ascii(r.DD33_PROGR)
    where r.DD33_PROGR is null
    and m.DD10_COD_DIR = '0217307'
    and m.DD23_ANNO = '2015'
    and m.DD33_BIMES = '4'

    Potete aiutarmi?
    Grazie
    Ultima modifica di Tempestaxmen; 19-07-2017 a 15:07

  2. #2
    per generalizzare, dovresti creare una tabella di riferimento con la sequenza completa (nel tuo caso le lettere dell'alfabeto) e metterla in Left Join con la tua. Dove trovi che la tua restituisce un NULL, lì hai un buco

    That easy!

  3. #3
    Non posso creare tabelle nuove, a questo punto se non è possibile fare una query che copre la mia richiesta, mi faccio restituire la distinct dei valori e lato codice faccio il confronto con una lista con tutte le lettere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.