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

SQL表自内连接创建视图及新增is_subsector字段修改问题

问题错误点梳理
  • 视图修改逻辑错误:不允许在ALTER VIEW的查询语句中引用正在修改的视图本身,会触发递归引用报错,必须基于原始表res_business_sector重新编写完整的视图查询逻辑。
  • 判断规则写反:需求规定parent_id不为空时is_subsector取值为1,原语句写的是parent_id IS NULL THEN 1,逻辑完全相反。
  • 字段类型不匹配:CASE语句默认返回整型值,需要显式转换为bit类型才能满足字段类型要求。
正确实现代码
ALTER VIEW v_res_business_sector AS
SELECT 
    rb1.id, 
    rb1.create_uid, 
    rb1.write_uid, 
    rb1.create_date, 
    rb1.write_date, 
    rb1.name, 
    rb1.active, 
    rb1.parent_id, 
    rb1.Code,
    CAST(CASE WHEN rb1.parent_id IS NOT NULL THEN 1 ELSE 0 END AS BIT) AS is_subsector
FROM res_business_sector AS rb1
INNER JOIN res_business_sector AS rb2
ON rb1.parent_id = rb2.id
补充提示

当前视图使用的是自内连接逻辑,关联条件为rb1.parent_id = rb2.id,意味着所有返回的记录parent_id必然非空,is_subsector字段的值会全为1。如果后续需要保留没有父级的顶级行业数据,可以把INNER JOIN修改为LEFT JOIN即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:54:02