Link to home
Start Free TrialLog in
Avatar of Payal sathavara
Payal sathavaraFlag for India

asked on

Search 'Email address' in where clause in SQL

How to search multiple email address in below SQL query.....

------------------
Declare @EmailId varchar (max)
set @EmailId='anuradha.dutta@xyz.com,HEENA.SANOTRA@xyz.COM'

Declare @String4 varchar (Max)

Set @String4 ='select * from EmailSummary ES
where ES.'+@EmailIdWhere+'
----------------------------------------------------------------------------------
Avatar of Pawan Kumar
Pawan Kumar
Flag of India image

Show columns from your table EmailSummary ?
What column has email ids?
Avatar of Payal sathavara

ASKER

Declare @EmailId varchar (max)
set @EmailId='anuradha.dutta@xyz.com,HEENA.SANOTRA@xyz.COM'

Declare @EmailIdWhere varchar (max)
Set @EmailIdWhere=Case when @EmailId='' then 'EMailAddressesTo<>''''' else 'EMailAddressesTo IN ('''+@EmailId+''')' end

Declare @String4 varchar (Max)

Set @String4 ='select * from EmailSummary ES
where ES.'+@EmailIdWhere+'
You need to try like below - Split and then join , IN clause will not work here.

--
Declare @EmailId varchar (max) =''
set @EmailId='anuradha.dutta@xyz.com,HEENA.SANOTRA@xyz.COM'

DECLARE @x AS XML=''
SET @x = CAST('<A>'+ REPLACE(@EmailId,',','</A><A>')+ '</A>' AS XML)

SELECT * FROM EmailSummary ES
INNER JOIN 
(
	SELECT t.value('.', 'VARCHAR(200)') Value FROM @x.nodes('/A') AS x(t)
)p ON p.Value = ES.EMailAddressesTo

--

Open in new window

Dear Sir,
I have also search with accountID as well as Email then ?

Declare @AccountMasterId varchar (max)
set @AccountMasterId='495,12110'

Declare @AccountMasterIdsWhere varchar (max)
Set @AccountMasterIdsWhere=Case when @AccountMasterId='0' then 'AccountMasterId<>-1111' else 'AccountMasterId in ('+@AccountMasterId+')' end

DECLARE @x AS XML=''
SET @x = CAST('<A>'+ REPLACE(@EmailId,',','</A><A>')+ '</A>' AS XML)

      SELECT * FROM #EmailSummary ES LEFT OUTER JOIN AccountMaster A ON A.EMail = ES.EMailAddressesTo
                  INNER JOIN
                  (
                        SELECT t.value('.', 'VARCHAR(200)') Value FROM @x.nodes('/A') AS x(t)
                  )p ON p.Value = ES.EMailAddressesTo      


I  have join account master and search with AccountMasterID....How to set in Query ?
ASKER CERTIFIED SOLUTION
Avatar of Pawan Kumar
Pawan Kumar
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial