2012-04-05 16 views

Antwort

6
select len('[email protected]') - len(replace('[email protected]', '.', '')) 
+0

wird es nicht beide zählen –

+0

@RoyiNamir: Sie haben Recht. Es ist nicht klar, was das OP will. Zählt sie einzeln oder fügt sie hinzu. –

1

Dies wird Ihnen das gewünschte Ergebnis geben.

DECLARE @str VARCHAR(1000) 
SET @str = '[email protected]_df.com' 
SELECT (LEN(@str)- LEN(REPLACE(@str ,'.' ,'')))+(LEN(@str)- LEN(REPLACE(@str ,'_' ,''))) 

Antwort: 5

0

Wenn Sie die Anzahl der Zeilen zählen möchten, die zwei . oder _ haben, können Sie wie folgt vorgehen:

select count(*) 
    from mytable 
where left(email, charindex('@', email)) like '%[._]%[._]%' 

Die left und charindex wird verwendet, um den Domain-Namen zu ignorieren (der . haben wird).

Referenz: LIKE (TSQL, SQL Server 2008)

1

Ich glaube, er will die Briefe ohne die Punkte vor dem @ zählen:

declare @myEmail varchar(50) 
set @myEmail = '[email protected]' 

declare @mySearch varchar(50) 
set @mySearch = SUBSTRING (@myEmail,0 , PATINDEX('%@%',@myEmail)) 
select (LEN(REPLACE(@mySearch, '.', ''))) 
Verwandte Themen