3

メールアドレスをお持ちの方

you.late.you@asdf.com

you_late_you@asdf.com

SQLコードを使用して2つのドット/アンダースコアがある場合、どのように数えることができますか?

4

5 に答える 5

6
select len('you.late.you@asdf.com') - len(replace('you.late.you@asdf.com', '.', ''))
于 2012-04-05T11:00:19.717 に答える
1

@ の前にドットを付けずに文字を数えたいと思っているようです。

declare @myEmail varchar(50)
set @myEmail = 'you.late.you@asdf.com'

declare @mySearch varchar(50)
set @mySearch = SUBSTRING (@myEmail,0 , PATINDEX( '%@%',@myEmail))
select (LEN(REPLACE(@mySearch, '.', '')))
于 2012-04-05T11:08:24.100 に答える
1

これにより、目的の結果が得られます。

 DECLARE @str VARCHAR(1000)
SET @str = 'you.l_ate.you@as_df.com'
SELECT (LEN(@str)- LEN(REPLACE(@str ,'.' ,'')))+(LEN(@str)- LEN(REPLACE(@str ,'_' ,'')))

答え : 5

于 2012-04-05T10:57:08.840 に答える
0

.またはが 2 つある行の数を数えたい場合_は、次のようにします。

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

leftとはcharindex、ドメイン名を無視するために使用されます (これには が付きます.)。

参照: LIKE (TSQL、SQL Server 2008)

于 2012-04-05T11:08:10.090 に答える
0
select 
    length(substr('you.late.you@asdf.com',1,INSTR('you.late.you@asdf.com','@',1))) - 
    length(replace(substr('you.late.you@asdf.com',1,INSTR('you.late.you@asdf.com','@',1)), '.', '')) 
from dual
于 2013-06-19T15:07:36.217 に答える