我正在使用名为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
与()
做了什么特别的事情吗?
答案 0 :(得分:7)
表达式:
where('LOC') = 'DALLAS'
将字符串'LOC'
与字符串'DALLAS'
进行比较。这些不匹配。
表达式:
where loc = 'DALLAS'
将列loc
与字符串'DALLAS'
进行比较。显然,这些确实有时匹配。
单引号与问题有关。括号与它无关。 (他们做一些与你的问题无关的“特殊”。他们将表达分组用于评估目的。)