快表软件

标题: if语句在sql中如何转换 [打印本页]

作者: zt0450    时间: 2021-10-26 11:40
标题: if语句在sql中如何转换
各位大侠老师好,因对sql语句不熟悉,在将excel函数直接在sql中应用时出错,具体如下:

在excel中的if语句:
if(d8="","",if(d8="等面积",if(h6>=h4,"可以","不可以"),if(m6>=m4,"可以","不可以")))

在快表sql表间公式中应用时,提示语法错误:
IF(本报表.[钢筋代换检查_主表].[分布代换方式]='','', IF(本报表.[钢筋代换检查_主表].[分布代换方式]='等面积', IF(本报表.[钢筋代换检查_主表].[代换截面积_分布]>=本报表.[钢筋代换检查_主表].[设计截面积_分布],'可以','不可以'), IF(本报表.[钢筋代换检查_主表].[代换强度_分布]>=本报表.[钢筋代换检查_主表].[设计强度_分布],'可以','不可以')))

不知转换到sql中时正确写法应该是如何的?

作者: hessen    时间: 2021-10-26 11:40
  1. CASE
  2. WHEN 本报表.[钢筋代换检查_主表].[分布代换方式] = '' THEN ''
  3. WHEN 本报表.[钢筋代换检查_主表].[分布代换方式] = '等面积'
  4.    AND (本报表.[钢筋代换检查_主表].[代换截面积_分布]>=本报表.[钢筋代换检查_主表].[设计截面积_分布]
  5.      OR 本报表.[钢筋代换检查_主表].[代换强度_分布]>=本报表.[钢筋代换检查_主表].[设计强度_分布]) THEN '可以'  
  6. ELSE '不可以'
  7. END  
复制代码

作者: hessen    时间: 2021-10-26 15:16
都是本报表的字段 就用Excel函数公式就可以,不用表间公式了
作者: zt0450    时间: 2021-10-26 16:05
根据老师的答复进行了如下调整,运行ok了!谢谢!
CASE
WHEN 本报表.[钢筋代换检查_主表].[分布代换方式] = '' THEN ''
WHEN (本报表.[钢筋代换检查_主表].[分布代换方式] = '等面'
   AND 本报表.[钢筋代换检查_主表].[代换截面积_分布]>=本报表.[钢筋代换检查_主表].[设计截面积_分布]
or
本报表.[钢筋代换检查_主表].[分布代换方式] = '等强'   
   AND 本报表.[钢筋代换检查_主表].[代换强度_分布]>=本报表.[钢筋代换检查_主表].[设计强度_分布] )
THEN '可以'
ELSE '不可以'
END  




欢迎光临 快表软件 (http://bbs.kuaibiao.cn/) Powered by Discuz! X3.4