我只需要显示居住在“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和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 个结果(即我正在寻找的结果),而另一个返回所有地址(包括我需要的那些)。
所以我的确切问题是,我如何在同一张桌子上执行 a (客户总共 10 条记录),以便显示地址中包含Peters和CrowsUNION
字样的所有客户?(其中 3 条记录符合条件,其他 7 条不符合)