注册

DM7中,WHERE条件后使用IF函数,用法不支持,改用CASE来控制筛选条件也执行失败,求帮助!

Xiaowo 2023/06/08 811 6

【DM版本】:DM7
【问题描述】*:
有一段查询sql,在where条件后使用了if函数,但是sql执行报错,以下是查询的相关sql:

WHERE IF ('CT伏安特性测试仪' = '其他分类', "instrument_category"."category_type" = '其分类', "instrument_category"."category_name" LIKE CONCAT( CONCAT( '%', 'CT伏安特性测试仪' ), '%' ))

支持时会报错: [=]附近出现错误

说明: 'CT伏安特性测试仪' 在执行时是参数化的.

但是IF函数的使用,又是支持的:

select IF(false,'1',concat(1,2,3));

请求帮助:

如何使用IF函数,使得上述where条件后使用,SQL能够正常执行.

尝试使用 CASE ,但是也是执行失败:

SELECT * FROM "ProjectReserve" INNER JOIN "instrument_category" ON "ProjectReserve"."category_id" = "instrument_category"."id" WHERE (CASE WHEN 'CT伏安特性测试仪' = '其他分类' < 100 THEN "instrument_category"."category_type" = '其分类' ELSE "instrument_category"."category_name" LIKE CONCAT('%', 'CT伏安特性测试仪', '%') END;)
回答 0
暂无回答
扫一扫
联系客服