【发布时间】:2011-04-25 13:59:57
【问题描述】:
如果我有以下关系
员工(staffNo(PK)、fName、lName、职位、性别、出生日期)
我将如何编写一个查询,该查询会生成所有女性员工的所有详细信息列表,按姓氏排序?
我的猜测是:
SELECT * FROM Staff ORDER BY fName ASC, lName ASC WHERE sex = 'f'
这对吗?
【问题讨论】:
如果我有以下关系
员工(staffNo(PK)、fName、lName、职位、性别、出生日期)
我将如何编写一个查询,该查询会生成所有女性员工的所有详细信息列表,按姓氏排序?
我的猜测是:
SELECT * FROM Staff ORDER BY fName ASC, lName ASC WHERE sex = 'f'
这对吗?
【问题讨论】:
好吧,你可以试试看是否正确:)
但是您应该将 where 谓词与 order by 子句交换,以及排序谓词:如果您想首先按姓氏排序 - 您应该在 order by 中首先指定姓氏。
【讨论】:
SELECT * FROM staff WHERE sex = 'F' ORDER BY lName ASC, fName ASC
你的 fName 和 lName 倒错了,你的 ORDER BY 在 WHERE 之后
【讨论】:
ORDER BY 将按照您指定的第一列按照您指定的方向对结果进行排序,然后使用您指定的第二列解析“关系”,依此类推
试试这个查询:
SELECT * FROM Staff WHERE sex = 'f' order by lName, fName;
【讨论】: