You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL使用CTE+UNION ALL查询Arrears与Invoices表新增源表标识列问题

解决方案

你只需要在UNION ALL关联的两个查询分支中,各自新增一个固定值的常量列,用来标记当前数据的来源表即可,修改后的SQL逻辑如下:

;with Acc.. as ( select ....from ....)

select 'Arrears' as [Table],  -- 新增来源表标记列,值固定为Arrears
       ..... -- 保留你原来要查询的其他列,注意两个分支的列顺序、类型要完全匹配
from  Arrears 

UNION ALL

select 'Invoices' as [Table], -- 新增来源表标记列,值固定为Invoices
       ... -- 保留你原来要查询的其他列,和上方分支的列一一对应
from Invoices 

注意事项

  • 两个查询分支的列数量、列顺序、对应列的数据类型必须完全一致,否则UNION ALL会执行报错
  • Table属于SQL的保留关键字,作为列名使用时建议用方括号(SQL Server适用)、反引号(MySQL适用)或者双引号(PostgreSQL/Oracle适用)包裹避免语法错误
  • 你给出的期望结果示例里写的Arrays属于笔误,实际按你的源表名Arrears填写即可

内容的提问来源于stack exchange,提问作者Giannis Polymenakos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:18:01