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

sql – 添加要查看的额外列,这在表中不存在

发布时间:2020-12-12 06:47:45 所属栏目:MsSql教程 来源:网络整理
导读:我想用三个表的联合创建视图.但在结果查询中,我想要一个额外的列,如’tableId’. 我的代码就像 CREATE OR REPLACE VIEW DETAILSAS SELECT * FROM(SELECT T1.ID,T1.AMOUNT,T1.STATUS,T1.ADDEDBY,T1.ADDEDONFROM Table1 T1UNION ALLSELECT T2.ID,T2.AMOUNT,T2.S
我想用三个表的联合创建视图.但在结果查询中,我想要一个额外的列,如’tableId’.

我的代码就像

CREATE OR REPLACE VIEW DETAILS
AS SELECT 
* FROM
(
SELECT 
    T1.ID,T1.AMOUNT,T1.STATUS,T1.ADDEDBY,T1.ADDEDON
FROM Table1 T1
UNION ALL
SELECT 
    T2.ID,T2.AMOUNT,T2.STATUS,T2.ADDEDBY,T2.ADDEDON
FROM Table2 T2
UNION ALL
SELECT
    T3.ID,T3.BILLAMOUNT,T3.STATUS,T3.ADDEDBY,T3.ADDEDON  
FROM Table3 T3
);

这给了我所需的三个表的联合.
但是如何在结果输出中获得表Id列?此列不存在于三个表中的任何一个中.

解决方法

听起来你只想在SELECT列表中添加一个额外的硬编码值
CREATE OR REPLACE VIEW DETAILS
AS SELECT 
* FROM
(
SELECT 
    T1.ID,T1.ADDEDON,'T1' tableID
FROM Table1 T1
UNION ALL
SELECT 
    T2.ID,T2.ADDEDON,'T2' tableID
FROM Table2 T2
UNION ALL
SELECT
    T3.ID,T3.ADDEDON,'T3' tableID  
FROM Table3 T3
);

(编辑:李大同)

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

    推荐文章
      热点阅读