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

    Query di aggiornamento/adattamento dati

    Salve gente

    Devo adattare dei dati di un database SqlServer

    Praticamente dovrei formattare i numeri nel seguente formato a 7 cifre :

    0008899
    0000112
    0000445

    A una formattazione a 10 cifre :

    0000008899
    0000000112
    0000000445

    Praticamente dovrei concatenari N zeri fino a un massimo di 10 solamente nel caso
    in cui il codice è numerico ed ha come primo carattere uno zero . . .

    Qualcuno esperto in stored procedure mi può scrivere stè 2 righe di codice ???

    Con una solo UPDATE mi è un pò dura . . .

    Graaaaaaaaazie

  2. #2
    SP? basta una update secca

    codice:
    UPDATE 
       tabella 
    SET 
       campo = '000' + campo
    WHERE
       SUBSTR(campo, 1, 1) = '0'
       AND IsNumeric(Campo) = 1
    da provare su una COPIA della tabella

  3. #3
    mmm il problema è che non tutti i codici han lunghezza fissa , quindi quei '000' non
    van molto bene . . .

    Ho creato una funzione utente in SqlServer , il controllo pare funzionare . . .

  4. #4
    Originariamente inviato da DarioN1
    mmm il problema è che non tutti i codici han lunghezza fissa , quindi quei '000' non
    van molto bene . . .

    Ho creato una funzione utente in SqlServer , il controllo pare funzionare . . .
    ok. però potevi dirlo prima

  5. #5
    non so se ho capito bene, ma...


    fai una select in cui leggi uno per uno tutti questi numeri (utilizzi ad esempio un while not rs eof) e poi prima del next crei la variabile "valorevecchio" e le assegni il valore del numero che sta in quel campo

    poi dici "se valorevecchio" è lungo 5 then valorenuovo = "00000" & valorevecchio
    se è lungo 6 allora valorenuovo = "0000" & valorevecchio
    cosi valorevecchio è quello che c'era prima e valorenuovo è quello che deve sostituirlo


    metti l'update del tipo "UPDATE NOMETABELLA SET nomecampo = " & valorenuovo & " WHERE nomecampo = " & valorevecchio

    a quel punto l'update sostituisce il valore e poi fai next e passi al valore dopo

    solo che mi sa che qua i numeri li devi trattare come stringhe
    Mr. Fepreto Nirra
    (I've been the wild rover for many of years - Spent all my money on whiskey and beer)
    E' PROPRIO UN BEL LOCALINO, BOB!
    ... ma non è il bicchiere giusto ...

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.