我正在使用SQL Server 2014
,并且我有以下T-SQL
查询:
USE [MyDatabase]
SELECT [FirstName], [Email]
FROM [t1]
WHERE [Email] like '%' + [FirstName] + '%'
我想提取[电子邮件]中[名字]出现的所有记录。但是,我的查询没有给出预期的输出。
我写了我的";其中";过滤器基于Gordon Linoff在以下问题中的回答:
来自另一列中一列的SQL搜索字符串
我觉得我错过了什么,但我就是想不出哪里出了问题。
任何帮助都将不胜感激。
样本:
FirstName Email
Michelle michelle.jones@noemail.com
我想提取[电子邮件]中出现[FirstName]的所有记录。
如果是,那么这个:
WHERE [FirstName] like '%' + [Email] + '%'
回过头来看我,你真的想要这个:
WHERE [Email] like '%' + [FirstName] + '%'
SELECT t.[FirstName], t.[Email]
FROM t1 AS t
WHERE CHARINDEX(t.[FirstName], t.[Email]) > 0
如果未找到,则返回0。如果找到,则返回第一个索引。例如:
FirstName: foo
Email: foo@bar.com
将返回1。
我认为你需要做这个
SELECT [FirstName], [Email]
FROM [t1]
WHERE [Email] like '%' || [FirstName] || '%'