加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

将列添加到SQL查询结果

发布时间:2020-12-12 08:55:35 所属栏目:MsSql教程 来源:网络整理
导读:我在SSRS中汇总一份报告.数据集使用MS SQL服务器的SQL查询填充.它使用Union All查询几个相似的表.问题是有一些信息丢失.不同的表格适用于不同的工作地点,但这些表格中的所有列都不具有网站的名称;识别站点的唯一方法是通过表名.在由Union All的结果组合的列中
我在SSRS中汇总一份报告.数据集使用MS SQL服务器的SQL查询填充.它使用Union All查询几个相似的表.问题是有一些信息丢失.不同的表格适用于不同的工作地点,但这些表格中的所有列都不具有网站的名称;识别站点的唯一方法是通过表名.在由Union All的结果组合的列中,无法确定哪些行来自哪个站点.

有没有办法改变我的查询以向列中添加一列,哪一行与每个行相关联?我无法将其添加到原始表中,因为我具有只读权限.我想到了这样的东西,但是我不知道要使用什么样的表达式,甚至可以做到这一点:

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

表达式将“添加”一列,这将添加与查询的每个部分相关联的站点名称.这个还是其他什么工作可以获取网站名称?

解决方法

构建查询时手动添加它:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读