我有这个sql输出,根据他们的位置为我提供了不同的行。如果他们住在那里我想要每人一行和三列Y.
Select name, Paris, London, NYC from location
Name Paris London NYC
John y
John y
John y
我想要这个
Name Paris London NYc
John y y y
答案 0 :(得分:1)
你可以使用max函数:
select name, max(paris), max(london), max(nyc) from location
group by name
答案 1 :(得分:-1)
使用子选择,如:
Select name,
(SELECT Paris FROM location WHERE name = a.name),
(SELECT London FROM location WHERE name = a.name)
FROM location a
这样,您可以在选择中进行选择,并将子选择链接到重叠选择的名称。
其他一些用户告诉您使用聚合。 在大多数数据库系统中,聚合查询的效率低于子查询,因此应谨慎使用聚合。
答案 2 :(得分:-1)
s
旁注,数据库设计不是最佳的!使用名称,城市和位置以及正确连接的3个表格将更加高效。