【问题标题】:Simple SQL Ordering Question简单的 SQL 排序问题
【发布时间】:2011-04-25 13:59:57
【问题描述】:

如果我有以下关系

员工(staffNo(PK)、fName、lName、职位、性别、出生日期)

我将如何编写一个查询,该查询会生成所有女性员工的所有详细信息列表,按姓氏排序?

我的猜测是:

SELECT * FROM Staff ORDER BY fName ASC, lName ASC WHERE sex = 'f'

这对吗?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

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

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

    【讨论】:

    • 还按顺序交换 fName 和 lName(假设 f=first 和 l=last)。
    • @Jon Egerton 是的,你是第一个 :)
    【解决方案2】:
    SELECT * FROM staff WHERE sex = 'F' ORDER BY lName ASC, fName ASC
    

    你的 fName 和 lName 倒错了,你的 ORDER BYWHERE 之后

    【讨论】:

    • 所以这仍然会保持姓氏的顺序......即使我们在之后重新排列名字
    • 是的。 ORDER BY 将按照您指定的第一列按照您指定的方向对结果进行排序,然后使用您指定的第二列解析“关系”,依此类推
    【解决方案3】:

    试试这个查询:

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

    【讨论】:

      猜你喜欢
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 2010-09-25
      相关资源
      最近更新 更多