where子句在语法上是正确的,但什么都不给

时间:2013-08-29 16:31:39

标签: sql oracle

我正在使用名为practice的教程表,分别使用列DEPTNO DNAME LOC

10  ACCOUNTING  NEW YORK
20  RESEARCH    DALLAS
30  SALES       CHICAGO
40  OPERATIONS  BOSTON

鉴于此查询

select * from practice where loc = 'DALLAS'

我得到了一个我期待的行,但是玩了一下,我也做了这个查询,

select * from practice where('LOC') = 'DALLAS'

我一无所获。我不明白,后一个查询在语法上是有效的,我没有例外,但仍然有一个空集的结果集。 where()做了什么特别的事情吗?

1 个答案:

答案 0 :(得分:7)

表达式:

where('LOC') = 'DALLAS' 

将字符串'LOC'与字符串'DALLAS'进行比较。这些不匹配。

表达式:

where loc = 'DALLAS'

将列loc与字符串'DALLAS'进行比较。显然,这些确实有时匹配。

单引号与问题有关。括号与它无关。 (他们做一些与你的问题无关的“特殊”。他们将表达分组用于评估目的。)