REPLACE FUNCTION

di Dengo il
24 risposte

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

  • 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 

  • 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?

  • Ciao,

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

    chiedo..

  • 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….

  • 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

  • Si scusa.

  • E come potrei risolvere?

  • 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?

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

  • 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.

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

  • 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