是否会有其他方式而不是多次写出相同的标准?
SELECT * FROM tblEmployees E
WHERE E.CurrentAddress LIKE '%dan%' OR
E.Email1 LIKE '%dan%' OR
E.Email2 LIKE '%dan%' OR
E.LatinName LIKE '%dan%'
答案 0 :(得分:1)
还有其他方法,但你的方法可能已经效率最高了。你总是可以这样做:
SELECT *
FROM tblEmployees
WHERE CurrentAddress + Email1 + Email2 + LatinName LIKE '%dan%'
如果某些列为NULL
,则可以使用ISNULL([field], '')
。
但是,正如@MitchWheat指出的那样,它不是完全相同的查询,因为字段可以结束
按d
,下一个字段可以an
开头。
答案 1 :(得分:0)
如果这些值都不是NULL
,您可以执行以下操作:
SELECT *
FROM tblEmployees E
WHERE concat(E.CurrentAddress, ' ', E.email1, ' ', E.email2, ' ', E.LatinName) LIKE '%dan%';
答案 2 :(得分:0)
同意这个问题上的plalx,但如果您担心多次输入'%dan%',请使用变量:
BEGIN
DECLARE @p_search NVARCHAR(50)
SET @p_search = '%dan%'
SELECT *
FROM tblEmployees E
WHERE E.CurrentAddress LIKE @p_search
OR E.Email1 LIKE @p_search
OR E.Email2 LIKE @p_search
OR E.LatinName LIKE @p_search
END
GO