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
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
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-.........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...
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 confusoOriginariamente 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-).
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 ringrazioOriginariamente 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)![]()
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.
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 gentileOriginariamente 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