Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 substring e charindex per nominativi (split)

Author  Topic 

fabry19dice
Starting Member

1 Post

Posted - 2011-10-26 : 12:55:15
ciao a tutti
ho la necessità di evidenziare i cognomi e i nomi nel campo NOME DENOMINAZIONE
devo tirar fuori questa situazione es.FALCONE CARLO = FALCONE C
per i nomi più compliacti ad esempio DE ROSSI ALBERTO = DE ROSSI A

la select sottostante funziona per i nomi tipo FALCONE C
ma non riesco a farla funzionare x i nomi tipo DE ROSSI A

mi aiutate x favore????


SELECT [NOME DENOMINAZIONE], LEN(LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))AS LUNGHEZZA,
CHARINDEX(' ', LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE]))) AS FIRSTNAME,
LEN(LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))-CHARINDEX(' ', LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))+1 AS BEGINNINGLASTNAME,
--SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], LEN(CHARINDEX(' ', LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))+1),NULLIF(CHARINDEX(' ', FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])-1,-1))AS SECOND,
CASE LEFT(LTRIM(RTRIM(SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], 1,NULLIF(CHARINDEX(' ', LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))+1,-1)))),3)
WHEN 'DE '
-- LEFT(SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], 1,NULLIF(CHARINDEX(' ', FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])+1,-1)),3) +
THEN RTRIM(SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], CHARINDEX(' ', LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE]))), LEN(LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE]))) -CHARINDEX(' ', LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))+1 - CHARINDEX(' ', LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))))
--THEN RTRIM(SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], NULLIF(CHARINDEX(' ', LTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE]))-1,-1), LEN(LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))-LEN(LTRIM(RTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])))-LEN(NULLIF(CHARINDEX(' ', LTRIM(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE]))+1,-1))))
WHEN 'DI '
THEN SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], 1,NULLIF(CHARINDEX(' ', FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])-1,-1))
WHEN 'DEL'
THEN SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], 1,NULLIF(CHARINDEX(' ', FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])-1,-1))
WHEN 'LO '
THEN SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], 1,NULLIF(CHARINDEX(' ', FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])-1,-1))
WHEN 'LA '
THEN SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], 1,NULLIF(CHARINDEX(' ', FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])-1,-1))
ELSE
SUBSTRING(FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE], 1,NULLIF(CHARINDEX(' ', FLUSSI.dbo.BONIFICI_TEMPORARY.[NOME DENOMINAZIONE])+1,-1))
END AS COGNOME_IN
FROM FLUSSI.dbo.BONIFICI_TEMPORARY
WHERE FLUSSI.dbo.BONIFICI_TEMPORARY.TROVATI IS NULL

grazie mille
ciao
fab

X002548
Not Just a Number

15586 Posts

Posted - 2011-10-26 : 13:38:43
hello all
I need to highlight the last and first names in the NAME NAME
I have to come up with this situation es.FALCONE CHARLES FALCONE = C
for names such as compliacti ALBERTO DE ROSSI ROSSI DE = A

select the underlying work for names like Falcone C
but I can not get it working xi names like De Rossi A

x please help me??

Brett

8-)

Hint: Want your questions answered fast? Follow the direction in this link
http://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspx


Want to help yourself?

http://msdn.microsoft.com/en-us/library/ms130214.aspx

http://weblogs.sqlteam.com/brettk/

http://brettkaiser.blogspot.com/


Go to Top of Page
   

- Advertisement -