Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    117

    Left & Right [sql Server]

    Salve,
    vorrei utilizzare la funzione LEFT o RIGHT per tagliare una parte di stringa in SQL SERVER.
    Vi riporto un esempio:

    IM-SINISTRA-DESTRA
    IM-ROSSO-BLU

    Vorrei tagliare IM- e lasciare il resto

    Come posso fare ?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    La parte che vuoi tagliare è sempre lunga 3 caratteri ?

    select left(nome_campo,3)

    Cosa devi fare, aggiornare il valore del campo

    update tabella set nome_campo = left(nome_campo,3) where...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    117
    Originariamente inviato da comas17
    La parte che vuoi tagliare è sempre lunga 3 caratteri ?

    select left(nome_campo,3)

    Cosa devi fare, aggiornare il valore del campo

    update tabella set nome_campo = left(nome_campo,3) where...
    Si, la parte che voglio tagliare è sempre lunga tre caratteri (IM-). Variano solamente i catatteri dopo IM-.........

    Se uso select left(nome_campo,3) taglio la parte interessata, e mi rimane la parte di stringa che vorrei tagliare (IM-).

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    Originariamente inviato da Lorenzo14
    Si, la parte che voglio tagliare è sempre lunga tre caratteri (IM-). Variano solamente i catatteri dopo IM-.........

    Se uso select left(nome_campo,3) taglio la parte interessata, e mi rimane la parte di stringa che vorrei tagliare (IM-).
    Hai ragione, che stupido, scusa mi sono confuso

    Puoi allora usare le funzioni LEN (che ti restituisce la lunghezza del tuo campo) e RIGHT e prendere i caratteri a partire da destra per una lunghezza pari al campo - 3

    Qualcosa del tipo

    select right(nome_campo, len(nomecampo) - 3)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    117
    Originariamente inviato da comas17
    Hai ragione, che stupido, scusa mi sono confuso

    Puoi allora usare le funzioni LEN (che ti restituisce la lunghezza del tuo campo) e RIGHT e prendere i caratteri a partire da destra per una lunghezza pari al campo - 3

    Qualcosa del tipo

    select right(nome_campo, len(nomecampo) - 3)
    Adesso va. Ti ringrazio

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    117
    Un'altra info: Per tagliare la seguente stringa "SINISTRA-DESTRA" oppure "ROSSO-BLU-NERO" ad ogni "-" che incontro come potrei fare ? Adesso il numero di caratteri da tagliare varia, a differenza di prima, dove erano sempre tre.

  7. #7
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,523
    Puoi usare la funzione charindex(testo da cercare, nome campo, indice da cui partire) che ti restituisce la posizione del tuo testo

    nel tuo caso

    select right(nome_colonna,len(nome_colonna) - charindex('-',nome_colonna,1)) from ...

    fai attenzione però che questo va bene se hai un solo carattere (sinistra-destra), se ne hai più di uno (rosso-nero-blu) dovresti ripetere l'operazione più volte

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    117
    Originariamente inviato da comas17
    Puoi usare la funzione charindex(testo da cercare, nome campo, indice da cui partire) che ti restituisce la posizione del tuo testo

    nel tuo caso

    select right(nome_colonna,len(nome_colonna) - charindex('-',nome_colonna,1)) from ...

    fai attenzione però che questo va bene se hai un solo carattere (sinistra-destra), se ne hai più di uno (rosso-nero-blu) dovresti ripetere l'operazione più volte
    Grazie mille, davvero gentile

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.