我是SQL查询的新手所以,对不起如果我错过了基本的细节。这是场景:
我必须在列中搜索用户电子邮件ID。
该列包含值
[email protected];[email protected];[email protected];
现在我从查询中获得了用户电子邮件ID:
DECLARE @emailid AS VARCHAR(50)
SELECT @emailid = emailId FROM dbo.tblUser WHERE userName = 'abc' AND projectId ='P1456'
我还用逗号代替分号:
COLUMNNAME IN (REPLACE(@emailid,';' ,','))
现在我得到了像[email protected],[email protected],[email protected],
这样的字符串
但是IN子句将它视为单个字符串,那么如何在每个电子邮件ID中附加引号如下,以帮助IN子句进行搜索?
'[email protected]','[email protected]','[email protected]',
试试这个:
DECLARE @emailid AS VARCHAR(50)
SELECT @emailid = '[email protected];[email protected];[email protected];'
SELECT @emailid AS emailid
,REPLACE(SUBSTRING( ''''+@emailid+'''',
PATINDEX(';',@emailid), 51),';',''+ ''''+','+''''+'') AS [replaced]
我希望你使用的是MSSQL