以下示例 table 的查询是什么?

What would the query be for the following sample table?

你能帮我做一个显示 table 这样的查询吗:

Dept_ID                Dept_Name

10                     Admin
10                     Whalen
20                     Sales
20                     James
20                     King
20                     Smith
40                     Marketing
40                     Neena

等等...模式是 HR

显示部门编号和部门名称,然后显示在该部门工作的后续员工姓氏

SELECT Dept_ID, Dept_Name
FROM Your_Table

尽可能简单。如果没有关于您的 table 结构和一些示例数据的更多细节,很难(几乎不可能)准确地说出查询应该是什么。

根据您的编辑,您可能需要更多这样的东西;

SELECT DT.Dept_ID, DT.Dept_Name, ET.Emp_Name
FROM Dept_Table AS DT INNER JOIN Emp_Table AS ET ON DT.Dept_ID = ET.Dept_ID
ORDER BY Dept_ID

这会在下一列显示每个部门的员工,您并不真的希望所有这些都在同一列中。

假设您的数据库中有一个名为 departments 的 table 保存此信息,您的代码可能如下所示:

select 
  dept_id, dept_name
from
  departments

如果您想显示 table 的某些列,就像您在上面的问题中所问的那样,您可以使用以下语法:

select column_names from table_name

替换:

  1. column_names 用逗号分隔要显示的列名 2.table_name 以及您希望显示的 table 列的名称

    对于上面的问题,下面的代码就可以了:

select Dept_Id , Dept_Name from Department ;

如果您的 table 名称是 'Department'

,则以上代码有效

合并两个数据集时,没有隐式排序,您可以按任何顺序获得结果。

要获取特定订单,您必须使用ORDER BY

要使用 ORDER BY,那么您必须 有字段来进行排序。

在您的情况下,伪代码将是...
- ORDER BY [dept_id], [depts-then-employees], [dept_name]

这三者的中间部分是您必须创建的东西。

一种方法如下。

注意:仅仅因为你有一个字段可以排序,并不意味着你必须select它.

SELECT
    dept_id,
    dept_name
FROM
(
    SELECT
        d.dept_id,
        d.dept_name,
        0   AS entity_type_ordinal
    FROM
        department   d

    UNION ALL

    SELECT
        d.dept_id,
        e.employee_name,
        1    AS entity_type_ordinal
    FROM
        department   d
    INNER JOIN
        employee     e
            ON  e.dept_id = d.dept_id
)
   dept_and_emp
ORDER BY
   dept_id,
   entity_type_ordinal,
   dept_name