Comment obtenir la partie numérique d'une chaîne en utilisant T-SQL?

J'ai la chaîne suivante.

Input
--------------
2030031469-NAI 

Pour obtenir la partie numérique, j'utilise le script suivant

declare @str varchar(50)= '2030031469-NAI'

Select 
    @str
    ,SUBSTRING(@str, 1,  NULLIF(CHARINDEX('-', @str) - 1, -1))
        ,Left(@str,PATINDEX('%-%',@str)-1)

pour obtenir la sortie suivante

Output: 
----------
2030031469

Est-il facile/moyen élégant de faire de même?

source d'informationauteur