【发布时间】:2016-02-03 10:42:27
【问题描述】:
假设我有一个表“动物”,其行代表不同的动物,并且有一列物种可能具有“猫”、“狗”、“马”、“牛”等值。假设我只对该动物是否是狗。在 sql 中(至少在 MySQL 中),我可以进行类似 select (species='dog') as isDog from animals 的查询,为狗返回 1,否则返回 0。我如何在 RA 中表达这一点?它没有选择,因为我们没有限制行。即使我的表达式 (species='dog') 本身不是属性,我可以使用项目运算符吗?或者我应该如何处理这个?
编辑: 我想通过在不存在但基于语句的真值的列上使用项目运算符来实现结果。例如,表动物包含只有一列“物种”的行:猫、狗、马、牛。我需要可以重命名为“isDog”的布尔值,这将导致值 0,1,0,0(1=true,0=false)。我通过选择 (species='dog') as isDog 在 MySQL 中获取此信息,我想知道使用带有 (species='dog') 的项目操作符来选择这样一个动态创建的列是否是有效的 RA,或者是否存在其他方式来处理这个?
【问题讨论】:
-
“关系代数”有很多版本,请给你的参考。
-
好的,我的实际数据是机密的,我已经为我正在处理的项目创建了 SQL 查询。但现在我应该在报告中报告结果,避免使用“SQL 代码”。更紧凑的数学格式是可以的,所以关系代数应该是可以接受的。但是动物的例子在指出我的问题时仍然有效。我想通过在不存在的列上使用项目运算符来实现结果,而该列是语句的真值的结果。