采访问题:
select count(1) from tablename where column=column
此请求返回的结果是什么?为什么?
答案 0 :(得分:4)
这将返回column
不为空的行数,因为NULL = NULL
会在条件中计算出UNKNOWN
false
。对于所有其他值column = column
都是真的。
答案 1 :(得分:3)
它取决于数据类型。在大多数情况下,它返回非空列的count()。 但是例如。
create table test_abc(column_name blob);
select count(1) from test_abc where column_name = column_name;
ORA-00932: inconsistent datatypes: expected - got BLOB
答案 2 :(得分:1)
可能会发生“strage”事件:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> create table clobTab( c clob);
Table created.
SQL> select count(1) from clobTab where c=c;
select count(1) from clobTab where c=c
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected - got CLOB
答案 3 :(得分:0)
当column = column为true时,此查询将返回带有字段名称(无列名称)的计数
当column = column为false时,else返回0。