簡體   English   中英

SQl查詢以從單行作為多行獲取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM