Estrarre numero di lunghezza variabile da stringa

di il
1 risposte

Estrarre numero di lunghezza variabile da stringa

Ciao ragazzi, sono nuovo del forum e ho un problemino.
Un campo codice articolo con i seguenti dati:

30201RT090
344506MT110DP
32201109HR080

In una vista devo estrarre solo la prima parte numerica ma il numero è di lunghezza variabile così come la lunghezza del codice.
Esiste una funzione tipo "left" che però al posto di dare il numero di caratteri da estrarre gli passa il numero di caratteri fino al primo carattere non numerico?

Non so se mi spiego ma i dati di esempio riportati dovrebbero restituire:

30201
344506
32201109

Grazie a chiunque possa aiutarmi!

1 Risposte

  • Re: Estrarre numero di lunghezza variabile da stringa

    Ciao,
    questo penso faccia a caso tuo:
    
    SELECT substring('30201RT090',0,PATINDEX('%[a-Z]%','30201RT090'))
    
    se riesci ti conviene creare una funzione che ti restituisca direttamente il valore tipo
    
    create FUNCTION [dbo].[getint](@s varchar(max))
    returns varchar(10)
    as
    BEGIN
    
    	return (SELECT substring(@s,0,PATINDEX('%[a-Z]%',@s)))
    
    END
    
    per cui poi avresti semplicemente:
    
    select dbo.getint('30201RT090')
    
Devi accedere o registrarti per scrivere nel forum
1 risposte