有staff
表:
ID Position Name
-----------------
1 doctor Joe
2 nurse Frederica
3 doctor Mark
4 doctor James
5 doctor Ema
6 nurse Dominica
7 nurse Anna
如何使结果查询看起来像这样(?):
doctors nurses
---------------
Joe Frederica
Mark Dominica
James Anna
Ema
我试过这样的方法:
SELECT
(SELECT staff.`Name` FROM staff WHERE staff.Position = 'doctor') AS Doctors;
(SELECT staff.`Name` FROM staff WHERE staff.Position = 'nurse') AS Nurses;
但正如我所料,它不起作用。我对SQL语法的知识有限,很难在谷歌上找到这个特定问题的解决方案。
非常感谢
2条答案
按热度按时间zazmityj1#
如果你真的想要这个 * 精确 * 的输出,我们可以在MySQL 8+上使用
ROW_NUMBER()
实现它:zi8p0yeb2#
这对于SQL语法来说有点复杂。你可以从SQL窗口函数中获得帮助,例如Over()和Row_Number()。我按照你的描述创建了一个表,当我测试下面的SQL查询时,我得到了你需要的相同结果。
这是我作为工作人员的样表
下面是查询:
P.S.我对MariaDB细节的了解比较少,我是根据我的SQL知识写的答案。