我想用三个表的联合创建 View 。但在结果查询中,我想要一个额外的列,如“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.AMOUNT,
T1.STATUS,
T1.ADDEDBY,
T1.ADDEDON,
'T1' tableID
FROM Table1 T1
UNION ALL
SELECT
T2.ID,
T2.AMOUNT,
T2.STATUS,
T2.ADDEDBY,
T2.ADDEDON,
'T2' tableID
FROM Table2 T2
UNION ALL
SELECT
T3.ID,
T3.BILLAMOUNT,
T3.STATUS,
T3.ADDEDBY,
T3.ADDEDON,
'T3' tableID
FROM Table3 T3
);
关于sql - 添加额外的列以查看表中不存在的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11608464/