Mysql 简单SQL排序问题

Mysql 简单SQL排序问题,mysql,sql,Mysql,Sql,如果我有以下关系 员工(员工编号(PK)、fName、lName、职位、性别、DOB) 我将如何编写一个查询,生成一个所有女性员工的详细信息列表,按她们的第二个名字排序,然后按她们的第一个名字排序 我的猜测是: 按fName ASC从员工订单中选择*,lName ASC,其中性别='f' 这是正确的吗?好吧,你可以试试看这是否正确:) 但是,您应该将where谓词与order by子句以及排序谓词交换:如果您想首先按姓氏排序,那么应该在order by中首先指定姓氏。好的,您可以尝试一下,看看这

如果我有以下关系

员工(员工编号(PK)、fName、lName、职位、性别、DOB)

我将如何编写一个查询,生成一个所有女性员工的详细信息列表,按她们的第二个名字排序,然后按她们的第一个名字排序

我的猜测是:

按fName ASC从员工订单中选择*,lName ASC,其中性别='f'


这是正确的吗?

好吧,你可以试试看这是否正确:)


但是,您应该将where谓词与order by子句以及排序谓词交换:如果您想首先按姓氏排序,那么应该在order by中首先指定姓氏。

好的,您可以尝试一下,看看这是否正确:)

SELECT * FROM staff WHERE sex = 'F' ORDER BY lName ASC, fName ASC
但您应该将where谓词与order by子句以及排序谓词交换:如果您想首先按姓氏排序,则应该在order by中首先指定姓氏

SELECT * FROM staff WHERE sex = 'F' ORDER BY lName ASC, fName ASC
您的fName和lName颠倒了方向,您的
ORDER BY
位于
WHERE

您的fName和lName颠倒了方向,您的
ORDER BY
位于
WHERE

后面,请尝试以下查询:

SELECT * FROM Staff WHERE sex = 'f' order by lName, fName;
请尝试以下查询:

SELECT * FROM Staff WHERE sex = 'f' order by lName, fName;

还可以按顺序交换fName和lName(假设f=first和l=last)。@Jon Egerton是的,你是第一个:)也可以按顺序交换fName和lName(假设f=first和l=last)。@Jon Egerton是的,你是第一个:)这样仍然可以保持姓氏的顺序……即使我们在Yeah之后重新排列名字
ORDER BY
将按照您指定的方向,按您命名的第一列对结果进行排序,然后使用您命名的第二列解析“关系”,如此一来,即使我们在重新排序名字,姓氏的顺序仍将保持不变
orderby
将按您命名的第一列按您指定的方向对结果进行排序,然后使用您命名的第二列解析“ties”,依此类推