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

    [SQL] UPDATE cambiare parzialmente contenuto

    Ciao,

    è possibile con un comando di UPDATE su SQL, cambiare NON tutto il contenuto di una cella, bensì solo una parte?

    Per esempio, ho un database e una tabella articoli con una colonna descrizione nella quale compare oltre che alla descrizione anche l'anno "2008"...
    Ecco, vorrei selezionare tutte quelle righe con il numero "2008" nella colonna di descrizione e modificare il "2008" in "2009".



    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    certo che puoi, o almeno si potrebbe...

    devi usare delle apposite funzioni per la manipolazione delle stringhe.

    bisogna vedere che database utilizzi e quali funzioni esistono nel tuo database, firebird permette anche l'utilizzo di UDF che sono funzioni definite dall'utente... e si potrebbe anche scrivere una funzione apposita per le proprie esigenze.

    ciao

  3. #3
    sqlserver2005


    quindi dici che serve non tanto SQL, bensì il linguaggio del server dove sta il DB?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    non conosco sql2005 ma certamente avra la funzione replace

    ho fatto una veloce verifica....

    prova a fare una select cosi:

    codice:
    select
    clienti.id,
    clienti.item,
    replace(clienti.item,'2008','2009') new
    from clienti
    ovviamente inserisci nome tabella e nome field giusti.

    questa select restituisce un dataresoult con 3 field il terzo dei quali dovrebbe essere il campo che a te interessa....

    aspetto notizie

  5. #5
    sto provando un pò di tutto.. su un db di prova.


    codice:
    SELECT     REPLACE(nome, 'Anton', 'Anthony')  FROM         utenti

    ma mi da sempre errore...

    "Il tipo di dati di argomento text non è valido per l'argomento 1 della funzione replace"

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    nome che cosa e'?

    posta la struttura della tabella utenti



    la select che ti ho postato io funziona su firebird.

    http://msdn.microsoft.com/it-it/library/ms174061(SQL.90).aspx

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dovresti provare con una

    UPDATE ... WHERE ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Originariamente inviato da cagnaluia
    sto provando un pò di tutto.. su un db di prova.


    codice:
    SELECT     REPLACE(nome, 'Anton', 'Anthony')  FROM         utenti

    ma mi da sempre errore...

    "Il tipo di dati di argomento text non è valido per l'argomento 1 della funzione replace"

    non e' che il field va messo tra parentesi quadre?

    codice:
    SELECT     REPLACE([nome], 'Anton', 'Anthony')  FROM         utenti

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    30
    non si può usare REPLACE di SqlServer su campi text, ma solo su varchar o char o simili.

    Prova con:

    codice:
    SELECT REPLACE(CONVERT(varchar(max),nome_campo), 'stringa1','stringa2'));

    Ciao.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.