2016-06-09 1 views
-3

J'ai lu et utilisé la fonction proposée dans cet article:SQL extraire plusieurs valeurs numériques de la colonne de chaîne

http://blog.sqlauthority.com/2008/10/14/sql-server-get-numeric-value-from-alpha-numeric-string-udf-for-get-numeric-numbers-only/

et cela fonctionne bien, mais en fait je besoin le résultat dans deux colonnes (je me attends à deux nombres qui doivent être séparés par des espaces et/char dans la chaîne d'origine)

Disons que "nfsdklj6/3 ddfsdf" doit être 6 | 3 "nfsdklj45/100 ddfsdf" devrait être 45 | 100

Je suis un programmeur sql recrue, de sorte que toute aide ou conseil serait appréciée, grâce

Répondre

2

Si vous utilisez l'mentionné udf

Declare @Table table (MyString varchar(25)) 
Insert into @Table (MyString) values 
('nfsdklj6/3 ddfsdf'), 
('nfsdklj45/100 ddfsdf') 

Select * 
     ,Val1=dbo.udf_GetNumeric(substring(MyString,1,charindex('/',MyString))) 
     ,Val2=dbo.udf_GetNumeric(substring(MyString,charindex('/',MyString),50)) 
From @Table 

Retours

MyString    Val1 Val2 
nfsdklj6/3 ddfsdf  6  3 
nfsdklj45/100 ddfsdf 45  100 

Pour votre tableau spécifique

Select Shuma 
     ,Val1=dbo.udf_GetNumeric(substring(Shuma,1,charindex('/',Shuma))) 
     ,Val2=dbo.udf_GetNumeric(substring(Shuma,charindex('/',Shuma),50)) 
From [dbo],[Deals] 
Where Shuma not like LIKE '%1/1%' 
+0

merci !! mes valeurs devraient provenir d'autres requêtes de sélection de cette colonne qui contiennent les chaînes d'origine ... quelle est la syntaxe correcte pour cela? –

+0

qui est la requête qui doit retourner les valeurs: SELECT Shuma \t DE [dbo] [les offres] \t OÙ Shuma NOT LIKE '% 1/1% de' –

+0

Mis à jour ma réponse pour la structure –