我有一个表,上面列有必须满足必备值的项目的质量。但用于检查的关系在一列中。
样品表:
| 项目|质量|实际值|关系|MustValue|
| --|--|--|--|--|
| 一|重量| 10 |<<的| 20 |
| 一|体积| 5 |>=个| 50 |
| B|体积| 12 |<=最大值| 10 |
我寻找一个SELECT来调出第2行和第3行,因为在这些行中,ActualValue超出了Relation & MustValue的范围。
结果应该是:
| 项目|质量|实际值|关系|MustValue|
| --|--|--|--|--|
| 一|体积| 5 |>=个| 50 |
| B|体积| 12 |<=最大值| 10 |
我希望有类似WHERE ActualValue CONVERT(Relation+MustValue).
的东西让我们假设,Relation和MustValue是文本字段,Relation是一个有效的SQL关系。
我不知道该找什么功能。
如何才能做到这一点?我在一个Oracle数据库系统上工作。数据库模型是给定的,我只能访问SELECT。
4条答案
按热度按时间pu82cl6c1#
WHERE子句中的嵌套CASE应该可以完成这项工作:
字符串
rqqzpn5f2#
我不知道该找什么功能。
SQL中没有函数(与其他语言中的
EVAL
类似)将动态计算作为SQL语句一部分的表达式。相反,您可以使用
CASE
表达式并将您希望使用的关系列入白名单:用途:字符串
其中,对于样本数据:
型
产出:
| 项目|质量|实际价值|关系|必须值|
| --|--|--|--|--|
| 一|体积| 5 |>=个| 50 |
| B|体积| 12 |<=最大值| 10 |
fiddle
tzdcorbm3#
您也可以使用xmlquery来计算表达式:
字符串
am46iovg4#
你可以编写自己的函数来计算表达式:
字符串
这将检查在Case表达式的When子句中使用的任何有效表达式,包括多个条件与AND/OR...