我需要仅显示居住在“Peters”或“Crows”大道的所有客户的姓名、地址和出生日期。
这很好,我是这样做的:
SELECT Customers.FirstName, Customers.Surname,
Customers.CustomerAddress, Customers.DOB
FROM Customers
WHERE
( Customers.CustomerAddress LIKE '%'+ 'Peters' + '%'
or Customers.CustomerAddress LIKE '%'+ 'Crows'+ '%')
但后来我仔细读了一下,上面写着:
使用 UNION 查询来生成结果。
所以我读了一点UNION
s,但大多数情况下我看到两者的返回值SELECT查询必须具有相同的长度,并且通常示例使用 2 个不同的表?
所以我需要执行UNION
同一张桌子上的所有顾客都这样说Peters and Crows在他们的地址中显示。我试过:
SELECT Customers.CustomerAddress
FROM Customers
WHERE
( Customers.CustomerAddress LIKE '%'+ 'Peters' + '%'
or Customers.CustomerAddress LIKE '%'+ 'Crows'+ '%')
UNION
SELECT Customers.FirstName, Customers.Surname,
Customers.CustomerAddress, Customers.DOB
FROM Customers
但我收到错误:
使用 UNION、INTERSECT 或 EXCEPT 运算符组合的所有查询必须
它们的目标列表中有相同数量的表达式。
这是可以理解的,因为我的第一个SELECT只返回 3 个结果(即我正在寻找的结果),而另一个返回所有已解决的结果(包括我需要的结果)。
所以我的确切问题是,我该如何执行UNION
同一张表上(客户共10条记录)这样所有的客户都带有这个字样Peters and Crows在他们的地址中显示? (其中 3 条记录符合条件,其他 7 条不符合)