sql问题

if(and(INDEXOFARRAY(SPLIT(C6, "-"), 1) = 22, INDEXOFARRAY(SPLIT(C6, "-"), 2) = 0), 2, if(and(INDEXOFARRAY(SPLIT(C6, "-"), 1) = 22, INDEXOFARRAY(SPLIT(C6, "-"), 2) = 2), 4, if(and(INDEXOFARRAY(SPLIT(C6, "-"), 1) = 22, INDEXOFARRAY(SPLIT(C6, "-"), 2) = 6), 8, INDEXOFARRAY(SPLIT(C6, "-"), 2) - INDEXOFARRAY(SPLIT(C6, "-"), 1))))

这段计算的是什么

SQL 用户G2632943 发布于 2023-3-23 15:27
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-3-23 15:38

if(

and(INDEXOFARRAY(SPLIT(C6, "-"), 1) = 22, INDEXOFARRAY(SPLIT(C6, "-"), 2) = 0), 2, // 先将C6按 - 号转为数组后 ,数组的第一个值是22且第二个值是0 则返回2

if(

and(INDEXOFARRAY(SPLIT(C6, "-"), 1) = 22, INDEXOFARRAY(SPLIT(C6, "-"), 2) = 2), 4, //上述判断不成立时,先将C6按 - 号转为数组后,数组第一个值是22且第二个值为2 返回4

if(

and(INDEXOFARRAY(SPLIT(C6, "-"), 1) = 22, INDEXOFARRAY(SPLIT(C6, "-"), 2) = 6), 8, //上述判断不成立时,先将C6按 - 号转为数组后,数组第一个值是22且第二个值为6 返回8

INDEXOFARRAY(SPLIT(C6, "-"), 2) - INDEXOFARRAY(SPLIT(C6, "-"), 1)// 以上都不成立时 返回C6按 -号转为数组后的第二个值减去第一个值

)

)

)

最佳回答
0
重庆一棵草Lv4中级互助
发布于2023-3-23 15:31

你拆分一下在看。就是if()判断。and就同时满足的意思。从最里面那个if看起。或者从最外面看起都行。

最佳回答
0
snrtuemcLv8专家互助
发布于2023-3-23 15:33

如果 C6单元格根据-分隔,第一个是22,第二个是0,那就是等于2

第一个是22,第二个是2,那就是等于4

第一个是22,第二个是6,那就是等于8

不然就是,第二个个减去第一个的差值

  • 1关注人数
  • 238浏览人数
  • 最后回答于:2023-3-23 15:38
    请选择关闭问题的原因
    确定 取消
    返回顶部