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

执行SQL时报invalid identifier s.site_id无效标识符错误排查

SQL报错invalid identifier s.site_id 问题排查与修复

错误原因

  • CTE sdv_ar未返回site_id与study_id字段:你在sdv_ar的查询逻辑中仅将brv.study_id与brv.site_id拼接为tu_alias_cd输出,没有单独返回这两个原始字段,因此在sdv_base中引用s.site_id、s.study_id时,数据库无法识别不存在的字段,抛出无效标识符错误。
  • 存在重复关联的冗余逻辑:sdv_base中连续两次关联dm_ctm_tu表且使用了相同的别名tu,既没有业务意义,还会引发语法歧义。

修复方案

因为你已经在sdv_ar中提前拼接好了关联用的tu_alias_cd字段,直接删除冗余的关联逻辑、用已有的字段做关联即可,改动量最小,修改后的sdv_base代码如下:

sdv_base AS (
    SELECT
        trc.geo_reg1_nm     AS region,
        trc.ropu_nm         AS ropu,
        trc.ctry_nm         AS country,
        trc.trc_alias_cd    AS study_country,
        trc.ctry_nm         AS tr_ctry,
        tu.tu_alias_cd      AS study_site,
        tu.tu_status,
        s.record_id,
        s.entered_dt,
        s.visit_dt,
        s.subject_number
    FROM
        sdv_ar s 
        INNER JOIN dm_ctm_tu tu 
            ON s.tu_alias_cd = tu.tu_alias_cd
            AND tu.curr_flg = 1
        INNER JOIN dm_ctm_trc trc 
            ON trc.ctry_cd = tu.ctry_cd
            AND trc.tr_no = tu.tr_no
            AND trc.curr_flg = 1
--TEMPORAL_COMMENT_UNTIL_DATA-- INNER JOIN dm_ctm_tr tr ON tr.tr_no=trc.tr_no AND tr.curr_flg=1 AND tr.tr_stat < 4950 /* Excluding ended studies */
)

可选调整

如果后续业务逻辑需要单独使用study_id或site_id字段,只需要在sdv_ar的内层SELECT查询中补充这两个字段的返回即可:

SELECT
    brv.subject_uid,
    brv.record_id,
    brv.log_id,
    brv.audit_subcat,
    brv.study_event_id,
    brv.int_tec_fr_dt,
    brv.subject_id AS subject_number,
    brv.study_id, -- 新增返回study_id
    brv.site_id, -- 新增返回site_id
    brv.study_id || '-' || brv.site_id AS tu_alias_cd,
    -- 剩余原有查询逻辑保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 19:33:02