戈少武 发表于 2024-7-27 06:42:26

sql自动生成

本帖最后由 戈少武 于 2024-8-1 16:37 编辑

(CASE WHEN1 = 0THEN a4. ELSE NULL END) as C4
在页面上用一个字段关联到另外一个表的另外一个字段,总关联不上,今天查了日志,发现生成的sql语句里面,自动增加了一个case when 语句。而我在设置关联时,并没有设置条件,不知道这个东西是怎么上去的,能帮忙分析一下吗?selecta2. as C0,a1. as C1,a1. as C2,
(CASE WHEN1 = 0THEN a3. ELSE NULL END) as C3,
(CASE WHEN1 = 0THEN a4. ELSE NULL END) as C4,
a5. as C5,a6. as C6,a7. as C7,a1. as C8,a1. as C9,
a. as C10,a. as C11,a. as C12,a. as C13,a. as C14,
a. as C15,a. as C16,a. as C17,a. as C18,
a. as C19,a. as C20
from . as aleft join . as a1 on a. = a1.
left join . as a2 on a1. = a2.
left join . as a3 on a1. = a3.
left join . as a4 on a1. = a4.
left join . as a5 on a1. = a5.
left join . as a6 on a1. = a6.
left join . as a7 on a1. = a7.
Where a. = 5288这是生成的查询语句,别的地方都没有case when ,就上面那个C3,C4自动生成了。


戈少武 发表于 2024-7-27 06:45:47

本帖最后由 戈少武 于 2024-7-27 07:00 编辑

这是设置的关联字段,它为什么自动生成的SQL 会带个 CASE WHEN 1=0呢? 其他字段关联都没有这个,就这两个字段出现case when.不知道是哪儿设置了什么,还是这个字段和别的字段类型有什么不同。

戈少武 发表于 2024-7-27 08:29:31

其他字段关联,都没有这个CASE WHEN

Joe.xu 发表于 2024-7-29 09:39:48

楼主可以检查一下是不是设置了字段权限,导致当前用户无法看到此字段的值,
如果不是此问题,需要您附上一个可以复现问题的demo和说明操作步骤。这样我们这边可以更好地理解您的问题,更好的帮助到您哦~

如果涉及到外联表,可以转成内置然后上传。
【外联转内置】
外联转内建库的具体步骤:
1.复制一份工程文件(复制一份主要是为了避免你将你的原版工程的数据库转成内置后,还要再转回去,比较麻烦);
2.打开某一个工程文件,按下ctrl+shift 同时点击“转换内建表按钮”(这个按钮在菜单栏“数据”项下)
3.按下ctrl+s保存
4.将转换后的这个工程上传即可~

戈少武 发表于 2024-7-30 16:29:54

能约时间远程看看吗?这个还是比较奇怪的,在设计里用测试库是正常的,可以使用,但到正式库里就不行了。我查了。也没有设置字段的的权限。

戈少武 发表于 2024-7-30 16:41:31

还有一个,如果我列表查询,它就没有问题,就能查正确,说明我关联的没有问题。这个确实有点怪了。

Joe.xu 发表于 2024-7-30 18:09:19

目前公司对网络监管非常严,使用远程工具都需要提前申请,

目前已知的是字段权限会拼case when,楼主可以在管理控制台看看对应的表是否开启了字段权限,
我这边也看看是否还有其他的逻辑会拼接

戈少武 发表于 2024-7-30 18:26:24

管理控制台到哪看字段权限呢?

戈少武 发表于 2024-7-30 18:26:59

好的,我看看

戈少武 发表于 2024-7-30 21:44:36

我看了管理控制台,里面没有对数据权限进行限制。这个确实是奇怪了。
页: [1] 2
查看完整版本: sql自动生成