[亿信BI4.7] if语句执行顺序

10156
12

tyy__think 小试身手Lv3

发表于2020-12-8 14:48

悬赏10

已解决

楼主
本帖最后由 tyy__think 于 2020-12-8 14:48 编辑

if嵌套是类似这样的:if(条件1,颜色1,if(条件2,颜色2,if(条件3,颜色3,颜色4))),是无论条件1成不成立,都会依次执行颜色1、2...等等吗,直到最后

条件成立才停止吗


最近看过此主题的会员

esen_59RK0W9DHY

ly.

13430212034

esen_4V2MVIEBFZ

ddb

esen_4ZJ8RP7VB1

10-321

esen_5090Z6CQA3JN

esen_4UZ4INQ7PD

esen_4ZC808HWLW

18282474942

暮暮

17333141896

esen_4PBBEIJOPT

chenzy

pandabuxizao

最佳答案
tyy__think 发表于 2020-12-8 15:35
这样多个条件写是不是会出现问题呢,但是页面比较多,又都是同一个下钻页,就是sql过滤条件不同 ...

需要考虑几个点,首先单独每个条件是否能够跑通
然后在每个if里都加mkfilter,为啥不改成外面一整个mkfilter里面写if判断,另外这里mkfilter其实可以i替换成手写判空条件做没必要写mkfilter,写这种判空if(@参数组件 is null,1=1,条件)
最后还可以考虑用case when试试
case when 条件1 then 结果1 when 条件2 then 结果2  else 结果3 end
12个回答

只看楼主

凹凸曼 初学数据Lv2

发表于2020-12-8 15:10

只看该作者

取消 关注该作者的回复

沙发

是的 可以写这样的If嵌套,他会根据前面的条件依次往下判断

tyy__think 小试身手Lv3

发表于2020-12-8 15:15

只看该作者

取消 关注该作者的回复

板凳

凹凸曼 发表于 2020-12-8 15:10
是的 可以写这样的If嵌套,他会根据前面的条件依次往下判断

那请问有没有只根据判断条件去执行语句的写法呢

凹凸曼 初学数据Lv2

发表于2020-12-8 15:20

只看该作者

取消 关注该作者的回复

地板

tyy__think 发表于 2020-12-8 15:15
那请问有没有只根据判断条件去执行语句的写法呢

这里的嵌套if不就是的吗,还是说另外的意思,您有没有一个具体的需求方便描述一下吗

tyy__think 小试身手Lv3

发表于2020-12-8 15:28

只看该作者

取消 关注该作者的回复

5#

凹凸曼 发表于 2020-12-8 15:20
这里的嵌套if不就是的吗,还是说另外的意思,您有没有一个具体的需求方便描述一下吗 ...

这个是同一个详情页就是不同的类型跳转到这个页面的,但是我发现好像无论条件是否成立,都会执行每一条过滤语句,到最后条件为真时,就是页面展示的数据

tyy__think 小试身手Lv3

发表于2020-12-8 15:35

只看该作者

取消 关注该作者的回复

6#

凹凸曼 发表于 2020-12-8 15:20
这里的嵌套if不就是的吗,还是说另外的意思,您有没有一个具体的需求方便描述一下吗 ...

这样多个条件写是不是会出现问题呢,但是页面比较多,又都是同一个下钻页,就是sql过滤条件不同

凹凸曼 初学数据Lv2

发表于2020-12-8 14:48

只看该作者

取消 关注该作者的回复

7#

tyy__think 发表于 2020-12-8 15:35
这样多个条件写是不是会出现问题呢,但是页面比较多,又都是同一个下钻页,就是sql过滤条件不同 ...

需要考虑几个点,首先单独每个条件是否能够跑通
然后在每个if里都加mkfilter,为啥不改成外面一整个mkfilter里面写if判断,另外这里mkfilter其实可以i替换成手写判空条件做没必要写mkfilter,写这种判空if(@参数组件 is null,1=1,条件)
最后还可以考虑用case when试试
case when 条件1 then 结果1 when 条件2 then 结果2  else 结果3 end

tyy__think 小试身手Lv3

发表于2020-12-8 15:57

只看该作者

取消 关注该作者的回复

8#

凹凸曼 发表于 2020-12-8 15:45
需要考虑几个点,首先单独每个条件是否能够跑通
然后在每个if里都加mkfilter,为啥不改成外面一整个mkfil ...

首先每条语句都跑的通(针对当前页跳转到它的下钻页),对于你说的建议你不觉得那种写法更复杂么,主要是嵌套这么多,最后case when有局限

凹凸曼 初学数据Lv2

发表于2020-12-8 16:08

只看该作者

取消 关注该作者的回复

9#

tyy__think 发表于 2020-12-8 15:57
首先每条语句都跑的通(针对当前页跳转到它的下钻页),对于你说的建议你不觉得那种写法更复杂么,主要是 ...

可以用的,
因为看到您这里是有多个类似casewhen这种一个个的条件的才想着用case的,您这里去掉宏手动写判空或者把mkfilter放外面试试


tyy__think 小试身手Lv3

发表于2020-12-8 16:20

只看该作者

取消 关注该作者的回复

10#

凹凸曼 发表于 2020-12-8 16:08
可以用的,
因为看到您这里是有多个类似casewhen这种一个个的条件的才想着用case的,您这里去掉宏手动写 ...

好的谢谢,去掉宏手动写判空这个写法是?

凹凸曼 初学数据Lv2

发表于2020-12-8 16:23

只看该作者

取消 关注该作者的回复

11#

tyy__think 发表于 2020-12-8 16:20
好的谢谢,去掉宏手动写判空这个写法是?

这种if(@参数组件 is null or len(@参数组件)=0,1=1,条件)

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号