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