zt0450 发表于 2021-10-26 11:40:06

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:07

CASE
WHEN 本报表.[钢筋代换检查_主表].[分布代换方式] = '' THEN ''
WHEN 本报表.[钢筋代换检查_主表].[分布代换方式] = '等面积'
   AND (本报表.[钢筋代换检查_主表].[代换截面积_分布]>=本报表.[钢筋代换检查_主表].[设计截面积_分布]
   OR 本报表.[钢筋代换检查_主表].[代换强度_分布]>=本报表.[钢筋代换检查_主表].[设计强度_分布]) THEN '可以'
ELSE '不可以'
END

hessen 发表于 2021-10-26 15:16:39

都是本报表的字段 就用Excel函数公式就可以,不用表间公式了

zt0450 发表于 2021-10-26 16:05:06

根据老师的答复进行了如下调整,运行ok了!谢谢!
CASE
WHEN 本报表.[钢筋代换检查_主表].[分布代换方式] = '' THEN ''
WHEN (本报表.[钢筋代换检查_主表].[分布代换方式] = '等面'
   AND 本报表.[钢筋代换检查_主表].[代换截面积_分布]>=本报表.[钢筋代换检查_主表].[设计截面积_分布]
or
本报表.[钢筋代换检查_主表].[分布代换方式] = '等强'   
   AND 本报表.[钢筋代换检查_主表].[代换强度_分布]>=本报表.[钢筋代换检查_主表].[设计强度_分布] )
THEN '可以'
ELSE '不可以'
END
页: [1]
查看完整版本: if语句在sql中如何转换