能否請你幫我,將顯示一個像這樣的表的查詢:對於下面的示例表,查詢會是什麼?
Dept_ID Dept_Name 10 Admin 10 Whalen 20 Sales 20 James 20 King 20 Smith 40 Marketing 40 Neena
等等......該模式是HR
顯示部門ID和部門名稱,然後後續員工姓氏在該部門工作
能否請你幫我,將顯示一個像這樣的表的查詢:對於下面的示例表,查詢會是什麼?
Dept_ID Dept_Name 10 Admin 10 Whalen 20 Sales 20 James 20 King 20 Smith 40 Marketing 40 Neena
等等......該模式是HR
顯示部門ID和部門名稱,然後後續員工姓氏在該部門工作
當工會兩組數據,沒有隱含的排序,你可以得到任何順序的結果。
獲取您的特定訂單必須使用ORDER BY
。
要使用ORDER BY
,那麼你的必須有字段做排序依據。
在你的情況下,僞代碼將是...
- ORDER BY [dept_id], [depts-then-employees], [dept_name]
這三個的中間是,你將不得不創造一些東西。
這樣做的一種方法如下。
注:僅僅因爲你有一個字段來ORDER BY,並不意味着你必須選擇它。
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
謝謝這麼多席! 我在測試了這一點,我絕對沒有線索,我一直都曾經傷透我的大腦從那時起:/ 這是一些來自經驗或者說是直線前進,我只是din't明白了嗎?它是低級代碼嗎? –
@AsimKhan - 如果這裏的任何答案都有幫助,請對它們進行投票並/或將它們標記爲已接受的答案:)至於如何低級或困難,最難的部分是瞭解在SQL中, ***一個固有的數據命令,你需要使用'ORDER BY',所以你需要有*東西*來完成排序。我會說這是簡單到中等程度的複雜性。 – MatBailie
SELECT Dept_ID, Dept_Name
FROM Your_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
保存這些信息,你的代碼可能是這樣的:
select
dept_id, dept_name
from
departments
如果你想顯示該表的某些列像你問的問題上面,你可以使用下面的語法:從table_name的
重新
選擇COLUMN_NAMES地點:
COLUMN_NAMES您要顯示由昏迷 2.table_name與它的列要顯示
對上述問題的表的名稱分隔的列名,下面的代碼會做:
選擇DEPT_ID,DEPT_NAME從部;
上面的代碼工作,如果你的表名是「部門」
爲什麼union-all?這只是選擇查詢 –
要麼這是一個非常基本的查詢,你應該只是閱讀一個教程,或者它看起來更復雜,你應該描述你的數據庫模式和你試圖作爲查詢,如果你需要幫助。 – polku
簡短的答案是'不'。你想讓'dept_name'列同時保存部門名稱和員工姓氏?這是一個基本上破碎的設計。你至少應該有另一個名爲'type'的列,它解釋了這一行描述的內容(一個部門或一個員工)。但更好的部門名稱應該與員工姓名在不同的列中。如果這是關於格式化顯示結果,請在您的應用程序中格式化... – MatBailie