微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将列添加到SQL查询结果

如何解决将列添加到SQL查询结果

生成查询时手动添加它:

SELECT 'Site1' AS SiteName, t1.column, t1.column2
FROM t1

UNION ALL
SELECT 'Site2' AS SiteName, t2.column, t2.column2
FROM t2

UNION ALL
...

例子:

DECLARE @t1 TABLE (column1 int, column2 nvarchar(1))
DECLARE @t2 TABLE (column1 int, column2 nvarchar(1))

INSERT INTO @t1
SELECT 1, 'a'
UNION SELECT 2, 'b'

INSERT INTO @t2
SELECT 3, 'c'
UNION SELECT 4, 'd'


SELECT 'Site1' AS SiteName, t1.column1, t1.column2
FROM @t1 t1

UNION ALL
SELECT 'Site2' AS SiteName, t2.column1, t2.column2
FROM @t2 t2

结果:

SiteName  column1  column2
Site1       1      a
Site1       2      b
Site2       3      c
Site2       4      d

解决方法

我正在用SSRS编写一份报告。该数据集填充有MS SQL Server的SQL查询。它使用Union
All查询几个相似的表。问题是有一些信息丢失。不同的表适用于不同的工作站点,但是这些表中的任何列都没有站点名称。标识站点的唯一方法是通过表名。在“全部合并”的结果的合并列中,无法分辨出哪些行来自哪个站点。

有没有一种方法可以更改我的查询以在结果中添加一列,该列将具有与每一行相关联的工作场所?我无法将其添加到原始表中,因为我具有只读权限。我曾想过类似的事情,但我不知道使用哪种表达方式,或者甚至可以做到:

SELECT t1.column,t1.column2
FROM t1
<some expression>
UNION ALL
SELECT t2.column,t2.column2
FROM t2
<some expression>
UNION ALL
...

表达式将“添加”一列,该列将添加与查询的每个部分关联的站点名称。这或其他方法能否获得站点名称?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。