2012-04-18 46 views
1

我需要創建一個視圖,其中包含指示哪一個表來自哪個表的行。在SQL Server中使用額外的列指示類型創建視圖

我使用的是SQL Server 2005 Express的

更具體地講,我有一個表的數據庫稱爲用戶,表叫開發商和包含銀行賬戶數據中單獨的一個。我需要一個顯示用戶和開發人員的銀行帳戶信息的視圖,以及一個額外的列,指出該行是來自用戶還是開發人員。

我有這樣的:

CREATE VIEW bankDataView 
AS 

SELECT accountinfo, name, lastname, devcode as id 
FROM developer d INNER JOIN bankdata bd ON 
d.bankdataID = bd.bankDataID 
UNION 
SELECT accountinfo, name, lastname, userID as id 
FROM user u INNER JOIN bankdata bd ON 
u.bankdataID = bd.bankdataID 

但現在我需要知道如何獲得額外的列。

這是可能的,還是我應該考慮一種替代方法?

回答

4

只需在每條select語句中添加一個額外的列,說明數據來自哪個表。然後,您可以輕鬆區分開發人員和用戶。

CREATE VIEW bankDataView 
AS 

SELECT accountinfo, name, lastname, devcode as id, 'Developer' as TableName 
FROM developer d 
INNER JOIN bankdata bd 
    ON d.bankdataID = bd.bankDataID 
UNION 
SELECT accountinfo, name, lastname, userID as id, 'User' as TableName 
FROM user u 
INNER JOIN bankdata bd 
    ON u.bankdataID = bd.bankdataID 
0

bluefeet在邏輯上是正確的,但如果您使用UNION ALL而不是普通UNION性能會更好。普通UNION做了消除聯合的重複結果的額外工作。由於新的TableName列,將不會有重複的結果

相關問題