[英]SQl Query to get data from single row as multiple rows
有人可以幫我弄這個嗎。
我有一個表結構如下
Department_name | Owner_ID | Approver_ID
-----------------------------------------
Dept 1 | 1234567 | 1234567
現在我想要基於員工ID的輸出,如下所示
喜歡
select department_name,Role where Owner_ID= '1234567' or Approver_ID = '1234567'
Department_name | Role
-------------------------
Dept 1 | Owner
Dept 1 | Approver
更重要的是,如上所述,我需要將其作為兩個單獨的行來獲取,並且Role不是表中的一列,根據給定的ID,其值可以是Approver或Owner。
我不知道如何得到這個。 提前致謝。
一個簡單的解決方案是聯合: http : //sqlfiddle.com/#!6/f13c9/5/0
SELECT
Department_name,
'Owner'
FROM test
WHERE Owner_ID = 1234567
UNION ALL
SELECT
Department_name,
'Approver'
FROM test
WHERE Approver_ID = 1234567
請嘗試一下..
SELECT Department_name,
CASE WHEN Role = (SELECT Owner_ID FROM Department)
THEN 'Owner' ELSE 'Approver'
END AS Role
FROM Department
UNPIVOT(Role for Column1 in(Owner_ID,Approver_ID)) AS Role
你也可以使用APPLY運算符
SELECT t.Department_name, o.Role
FROM dbo.YourTable t
CROSS APPLY (
VALUES(CASE WHEN t.Owner_ID = '1234567' THEN 'Owner' END),
(CASE WHEN t.Approver_ID = '1234567' THEN 'Approver' END)
) o(Role)
WHERE o.Role IS NOT NULL
試試這個
SELECT Department_name,Role FROM TableName UNPIVOT((Owner_ID,Approver_ID)中Department_name的角色)AS角色
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.