我有一个类似的CASE语句
CASE WHEN a AND b THEN c ELSE d END
我的表中有一个字段,其中包含逻辑运算符,如AND
、OR
我想使用这个字段,而不是在上面的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))
然而,我对你的整体数据模型持怀疑态度。在字段中存储布尔运算符似乎。特别的