【发布时间】:2013-02-28 22:51:13
【问题描述】:
为什么 oracle 不能识别这句话?它说在预期的地方找不到“来自关键字”。它出什么问题了 ?
例子:
select distinct a.id = b.id
from table1 a, table2 b
where a.column = X and b.column =Y;
MySQL 允许我这样做。那么我应该改变什么?
【问题讨论】:
-
你期待什么结果?
-
我期待某种布尔结果,这就是我为什么在此处放置“=”符号而不使用
a.id, b.id。 -
好吧,我就是这么想的。 Boolean 不是标准的 SQL 数据类型。 MySQL 已经实现了它,但 Oracle 还没有。
-
是的,这就是我所说的“某种布尔值”。我用 1 和 0 处理它。
-
@APC:实际上
boolean是一个标准的SQL数据类型(我认为它是用SQL-99添加的)。 MySQL 确实 not 有boolean数据类型 - 只有一个不完全相同的数据类型。 MySQL 在表达式中简单地将零视为false,将任何非零视为true(这与真正的布尔类型完全不同)。这就是为什么(理论上是非法的)语句:delete from foo where 1234会愉快地从表中删除所有行。