【发布时间】:2023-01-27 17:41:46
【问题描述】:
我需要创建一个函数来显示此连接的所有列,但根据参数,一个额外的列会添加到查询中。向您展示它是如何工作的
这是原始查询
SELECT * FROM bf_uom.V_BF_JOBS_STATUS Bj
left join bf_uom.bf_runs r
on bj.run_id = r.run_id
LEFT JOIN bf_uom.Bf_Document_Catalog Bdc
ON
bf_uom.Bj.Document_Label = Bdc.Document_Label
left join bf_uom.bf_load_jobs lj
on lj.job_id=bj.job_id WHERE lj.job_id =:JOB_ID
但是,如果满足输入参数,则应向查询添加一个额外的列,如下所示
SELECT 'DOWNLOAD PDF' as "DOWNLOAD",* FROM bf_uom.V_BF_JOBS_STATUS Bj
left join bf_uom.bf_runs r
on bj.run_id = r.run_id
LEFT JOIN bf_uom.Bf_Document_Catalog Bdc
ON
bf_uom.Bj.Document_Label = Bdc.Document_Label
left join bf_uom.bf_load_jobs lj
on lj.job_id=bj.job_id WHERE lj.job_id =:JOB_ID
这当然行不通,我尝试添加表。* 而不是 *,但它仍然没有显示与 SELECT * 相同的列数。
如何在不键入应该在 SELECT 语句中的所有列的名称的情况下解决这个问题?
【问题讨论】:
-
'DOWNLOAD PDF' as "DOWNLOAD", bj.*, r.* 添加列时,您必须使用引用表的别名。 (至少对于 ORACLE)
-
单个
*不能与 SELECT 子句中的任何其他内容组合。