合并t-sql中的字段

时间:2011-06-17 15:23:22

标签: sql tsql

如何使用t-sql合并2个记录集?

假设我有一个类似下面的数据库(所有浮点字段)

限制 - 下限 - 上限 - 偏差

为了向后兼容,我需要返回一个这样的记录集:

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

哪个工作正常,但在这个特殊情况下,我需要将记录集分为两部分:

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

Select Deviation AS Val1

这需要在同一记录集中作为两个不同的行返回。我怎么能这样做?

2 个答案:

答案 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

这将返回表中的每一行两次,一次是Limit,Lower,Upper,一次是偏差,Lower,Upper。

答案 1 :(得分:0)

您无法返回具有不同列定义的行的单个记录集。每行必须具有相同的列数。想想电子表格,而不是XML。