REPLACE FUNCTION

di il
24 risposte

REPLACE FUNCTION

Salve,

ho un problema che non riesco a risolvere in sql server.

dovrei convertire una stringa di questo genere :

1a1b2[1a1b]1a1b1a1c ect ect  

in

1a1b 2(1a1b) 1a1b1a1c ect ect

praticamente le quadre in tonde e nn ci sono problemi con il doppio replace, lo spazio dopo la chiusura della parentesi ok, non riesco pero' a creare lo spazio prima dell apertura della parentesi compreso di numero.

qualcuno puo' aiutarmi?

grazie 1000

24 Risposte

  • Re: REPLACE FUNCTION

    https://learn.microsoft.com/it-it/sql/t-sql/functions/charindex-transact-sql?view=sql-server-ver16

  • Re: REPLACE FUNCTION

    Ok ma io nn ho sempre la stessa situaione.

    mosto qualche esempio per far capire :

    es :1 )  1a1b2[1a1b]1a1b1a1c

    es :2) 1a1b2[1a1b]1a1b20[1c1d]

    es:3) 1a1b1a1c20[2a2b]1a1b3[1c1d]3[1a1b]3[1a1b]1a1d

    ect ect.

    avrei bisogno come ho scritto prima, la necessita di creare .uno spazio v.uoto prima dell' inizio di q.ualsiasi q.uadra 

  • Re: REPLACE FUNCTION

    Vuoi uno spazio prima della quadra aperta?

    Nella replace sostituisci la quadra aperta con spazio e tonda aperta

    Non vedo il problema ma forse non è quello che esattamente vuoi

    Comunque nei 3 esempi devi indicare anche i risultati che vuoi ottenere altrimenti a che servono gli esempi?

  • Re: REPLACE FUNCTION

    Ciao,

    non puoi sostituire la ‘[’ con ‘ (’
    che è la stessa cosa per quella chiusa :  ‘]’ con ‘) ’

    chiedo..

  • Re: REPLACE FUNCTION

    Si certo, il problema e' che quando chiudo la tonda dare uno spazio successivo non e' un problema, mentre dare uno spazio all apertura della tonda per me si, perche ho davanti un numero che pu0o' essere ad una, due o tre o quattro caratteri.

    lo spazio deve essere dato prima del numero e non prima della tonda.

    non so se mi sono spiegato bene.

    1a1b20[1a1b]

    1a1b…uno spazio…20(1a1b)….uno spazio….

  • Re: REPLACE FUNCTION

    Quindi devi spiegarti bene altrimenti non fai capire nulla.

    Lo spazio NON deve essere prima della parentesi aperta ma prima del numero che sta davanti la parentesi e con la Replace NON lo puoi fare

  • Re: REPLACE FUNCTION

    Si scusa.

  • Re: REPLACE FUNCTION

    E come potrei risolvere?

  • Re: REPLACE FUNCTION

    Lo devi fare per forza con sql server o con il codice del programma con cui leggi i dati? Con quale linguaggio hai scritto il programma?

  • Re: REPLACE FUNCTION

    No devo farlo con sql server perche lo uso in un trigger, nn posso scrivere il codice sul programma xche e' di terze parti.

  • Re: REPLACE FUNCTION

    Allora dopo aver eseguito le Replace che puoi fare facilmente, con un ciclo cerca la posizione della parentesi tonda aperta con la charindex e da quella posizione cerca a ritroso finché non trovi più cifre e inserisci lo spazio. Ripeti fino a fine stringa.

    È più difficile a dirsi che a farsi.

  • Re: REPLACE FUNCTION

    https://learn.microsoft.com/en-us/sql/t-sql/functions/replace-transact-sql?view=sql-server-ver16

    Avevo sbagliato link…

  • Re: REPLACE FUNCTION

    Grazie ma non riesco con il solo replace a mettere lo spazio precedente al numero che apre la parentesi

  • Re: REPLACE FUNCTION

    Ti ho detto che con la replace non puoi. Hai letto la mia risposta precedente? 

Devi accedere o registrarti per scrivere nel forum
24 risposte