问答 查看内容
返回列表

一段case...end适合作为全局参数存储,然后嵌入sql中执行吗?

47 1
发表于 昨天 18:04 | 查看全部 阅读模式
如下,一段case...end适合作为全局参数存储,然后嵌入sql中执行吗?



(case template.service_providers when 3 then 'aa' when 4 then 'bb' when 11 then 'cc' else template.service_providers end)


评论1

观小豪楼主Lv.1 发表于 昨天 18:04 | 查看全部
关于这个问题,是不行的,首先创建上肯定用文本参数可以创建出来。但是文本类型默认会加“单引号”并做转义,所以如果默认值填 case ... end,最终通常会变成字符串常量,而不是可执行 SQL 表达式

如果只是复用这段 case when 映射,优先做成数据集计算字段、,或在 SQL 里用维表映射维护,比较合适;
如果希望多个 SQL 复用同一套映射,建议建一张映射表:service_provider_code -> label,SQL 里 join 或 left join,比全局参数存 SQL 片段更可维护。

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表