我有一项学习任务,现在我已经把头撞在墙上至少一天了。 我对此完全陌生,只是学习基础知识。
这是我的作业:
使用 union 组合这些查询:
Northwind 数据库有问题。
这是我尝试过的:
select customername, customers.city, customers.postalcode
from customers
join suppliers on customers.city = suppliers.city and customers.PostalCode = suppliers.PostalCode
union
select customername, customers.city, customers.postalcode
from customers
where length(customername) <
(select max(length(suppliername))
from suppliers)
问题在于最后一个“where 子句”。 我知道最长的供应商名称有 38 个字符:
(选择最大(长度(供应商名称)) 来自供应商)=38 个字符
但是我不知道如何查询“最多短五个字符”。
我通过查询得到了正确的结果集:
其中长度(客户名称)> 33
但显然这不是所要求的。
谢谢您的帮助:)
select *
from customers
where exists
(select *
from suppliers
where customers.city = suppliers.city and customers.postalcode =
suppliers.postalcode)
union
select *
from customers
where length(customername) >=
(select max(length(suppliername)) from suppliers) - 5;
根据您的回答,我使它看起来像这样,结果集似乎是正确的。就像我说的,我对这一切都是全新的,希望尽快掌握基础知识。英语不是我的母语,所以这也让事情变得更有趣。
感谢所有回答我问题的人,这很有帮助,我希望我正确理解了一切......