2011-06-17 30 views
0

如何使用t-sql合併2個記錄集?在t-sql中合併字段

比方說,我有如下所示(所有浮點字段)的數據庫

極限 - 下限 - 上 - 偏差

向後兼容性我需要返回設定這樣的記錄:

Select Limit AS Val1, 
Lower AS Val2, 
Upper AS Val3 

在此一個特定的情況下卻工作得很好,我需要返回分兩部分創下的紀錄:

Select Limit AS Val1, 
    Lower AS Val2, 
    Upper AS Val3 

Select Deviation AS Val1 

這需要在同一記錄集中作爲兩個不同的行返回。我怎樣才能做到這一點?

+0

您是否需要記錄進行交替(即限制/偏差,限制/偏差...)如果是這樣,是否所有記錄都有不同的值?如果您在表格中保證唯一索引,那麼可能會有解決方案。 –

回答

2

如果要從一個表中返回同一數據集中的兩個單獨的行,則需要確保每行具有相同數量的列。否則,你應該返回兩個不同的記錄集(也許使用MARS)。要返回相同的行兩次,這樣做:

SELECT Limit AS Val1, Lower AS Val2, Upper AS Val3 
FROM TableName 
UNION ALL 
SELECT SELECT Deviation AS Val1, Lower AS Val2, Upper AS Val3 
FROM TableName 

這將返回表中的每一行兩次,一次與限制,下限,上限,一旦有偏差,下限,上限。

+1

您可能希望在第二次選擇Val2和Val3時返回null。 – YetAnotherUser

+0

輝煌,謝謝。 – DanDan

0

您不能返回一個單個記錄集,其行具有不同的列定義。每行必須具有相同的列數。考慮電子表格,而不是XML。