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

Edg*_*ian 2 sql oracle

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

10  ACCOUNTING  NEW YORK
20  RESEARCH    DALLAS
30  SALES       CHICAGO
40  OPERATIONS  BOSTON
Run Code Online (Sandbox Code Playgroud)

鉴于此查询

select * from practice where loc = 'DALLAS'
Run Code Online (Sandbox Code Playgroud)

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

select * from practice where('LOC') = 'DALLAS'
Run Code Online (Sandbox Code Playgroud)

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

Gor*_*off 7

表达方式:

where('LOC') = 'DALLAS' 
Run Code Online (Sandbox Code Playgroud)

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

表达方式:

where loc = 'DALLAS'
Run Code Online (Sandbox Code Playgroud)

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

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

  • `WHERE`子句只检查布尔表达式,这些可以是列上的条件,但也可以是更复杂的条件 - 或者更简单的条件,比如字符串. (2认同)