我的 SQL 语法有什么问题,用于根据另一列的字符串在一列中搜索字符串?
What is wrong with my SQL syntax for searching a String in a column based on the String from another column?
我正在使用 SQL Server 2014
并且我有以下 T-SQL
查询:
USE [MyDatabase]
SELECT [FirstName], [Email]
FROM [t1]
WHERE [Email] like '%' + [FirstName] + '%'
我想提取 [FirstName] 在 [Email] 中出现的所有记录。但是,我的查询没有给我预期的输出。
我根据 Gordon Linoff 在以下问题中的回答编写了我的“WHERE”过滤器:
我觉得我错过了什么,但我就是想不出我哪里出错了。
如有任何帮助,我们将不胜感激。
样本:
FirstName Email
Michelle michelle.jones@noemail.com
I would like to extract all records where [FirstName] appears in the [Email].
如果是这样,那么这个:
WHERE [FirstName] like '%' + [Email] + '%'
回头看我,你真的想要这个:
WHERE [Email] like '%' + [FirstName] + '%'
SELECT t.[FirstName], t.[Email]
FROM t1 AS t
WHERE CHARINDEX(t.[FirstName], t.[Email]) > 0
Returns 如果未找到则为 0。
Returns 如果找到第一个索引。例如:
FirstName: foo
Email: foo@bar.com
将return 1.
我认为你需要这样做
SELECT [FirstName], [Email]
FROM [t1]
WHERE [Email] like '%' || [FirstName] || '%'
我正在使用 SQL Server 2014
并且我有以下 T-SQL
查询:
USE [MyDatabase]
SELECT [FirstName], [Email]
FROM [t1]
WHERE [Email] like '%' + [FirstName] + '%'
我想提取 [FirstName] 在 [Email] 中出现的所有记录。但是,我的查询没有给我预期的输出。
我根据 Gordon Linoff 在以下问题中的回答编写了我的“WHERE”过滤器:
我觉得我错过了什么,但我就是想不出我哪里出错了。
如有任何帮助,我们将不胜感激。
样本:
FirstName Email
Michelle michelle.jones@noemail.com
I would like to extract all records where [FirstName] appears in the [Email].
如果是这样,那么这个:
WHERE [FirstName] like '%' + [Email] + '%'
回头看我,你真的想要这个:
WHERE [Email] like '%' + [FirstName] + '%'
SELECT t.[FirstName], t.[Email]
FROM t1 AS t
WHERE CHARINDEX(t.[FirstName], t.[Email]) > 0
Returns 如果未找到则为 0。 Returns 如果找到第一个索引。例如:
FirstName: foo
Email: foo@bar.com
将return 1.
我认为你需要这样做
SELECT [FirstName], [Email]
FROM [t1]
WHERE [Email] like '%' || [FirstName] || '%'