使用case语句代替逻辑运算符



我有一个类似的CASE语句

CASE WHEN a AND b THEN c ELSE d END

我的表中有一个字段,其中包含逻辑运算符,如ANDOR

我想使用这个字段,而不是在上面的case语句中直接使用运算符所以:

CASE WHEN a (CASE WHEN field.value = 'AND' THEN 'AND'OR 'OR' END) b THEN c ELSE d END

我也尝试引入一个用户定义的函数,但都不起作用,我收到了一个缺少表达式的错误。

我错过了什么?非常感谢。

缺少的是字符串不是运算符。也许你能做的最好的事情是:

(CASE WHEN field.value = 'AND' AND (a AND b) THEN 'true'
WHEN field.value = 'OR' AND (a OR b) THEN 'true'
END) = 'true'

或者更简单地说:

(field.value = 'AND' AND (a AND b)) OR
(field.value = 'OR' AND (a OR b))

然而,我对你的整体数据模型持怀疑态度。在字段中存储布尔运算符似乎。特别的

最新更新