Estrai Stringa

mercoledì 08 ottobre 2014 - 17.06

lorenzo57 Profilo | Newbie

Un saluto a tutto il forum. Ogni tanto mi rivolgo a Voi per risolvere qualche problemino.
Arrivo al dunque:

Ho questi nominativi: ferritina Raffaele TB
Catalano Domenico AP

devo estrarre solo i cognomi e nomi in un query :

ferritina raffaele
Catalano Domenico
in sostanza devo eliminare tutto ciò che si trova dopo il secondo spazio partendo da dx.

Vi ringrazio.


alx_81 Profilo | Guru

>Un saluto a tutto il forum. Ogni tanto mi rivolgo a Voi per risolvere qualche problemino.
>in sostanza devo eliminare tutto ciò che si trova dopo il secondo spazio partendo da dx.
ciao e benvenuto su dotnethell.it!
Sei partito con un post molto scomodo, anche se non sembra.
Il cognome, purtroppo, non sempre è una sola parola (i vari De, Di, stranieri e così via..).
Se sei certo che i tuoi nominativi sono separati da uno ed un solo spazio tra nome e cognome, allora basta utilizzare algoritmi di splitting (con semplici funzioni builtin anche).
Negli altri casi, dovrai capire la qualità dei tuoi dati e andare ad eseguire algoritmi più precisi e complessi.

Tuttavia non indichi minimamente cosa stai usando, dove lo vuoi fare, con cosa, ecc. Quando componi un post ci sono anche dei tag, ti chiedo cortesemente di sceglierli al prossimo post.
Con cosa vuoi fare la separazione, ammesso che sia possibile? t-SQL? C#? VB.net? Altro?

>Vi ringrazio.
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222

lorenzo57 Profilo | Newbie

Alx_81, scusami se non ho utilizzato i tag ma non so come si usano, anche perchè è da molto che non mi affaccio al forum.
Comunque, sto utilizzando access 2010 e per il problema esposto preferirei una query.
Tuttavia, ho commesso un errore quando scrivevo:
>>in sostanza devo eliminare tutto ciò che si trova dopo il secondo spazio partendo da dx.
Volevo invece correggere con : "eliminare tutto ciò che si trova dopo il secondo spazio partendo da sx"
Dall'esempio esposto dovrei togliere tutto ciò che viene dopo il Nome e Cognome.


renarig Profilo | Expert

Come ti diceva Alex c'è il problema dei Cognomi composti, dei nomi doppi, stranieri, dei doppi spazi fra nome e cognome eccetera.......

comunque nella ipotesi felice che sia tutto perfetto allora devi usare le funzioni InStr(...;..;...) e Left(....)

se hai una tabella di nome "T1" con 1 solo campo di Nome "NomCog" che
contiene appunto il Nome Cognome e qualcos'altro
SELECT T1.NomCog, InStr(T1.NomCog," ") AS PrimoSpazio, InStr((InStr(T1.NomCog," ")+1),T1.NomCog," ") AS SecondoSpazio, Left(T1.NomCog,8) AS SinFisso, Left(T1.NomCog,((InStr((InStr(T1.NomCog," ")+1),T1.NomCog," "))-1)) AS RisultatoDesiderato FROM T1 ;

Ma quanto sopra certamente non va bene, bisognera trovare altre soluzioni che in questo momento non immagino.

.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5