質問テーブル名から:SELECT COUNT(1)列=インタビューから列
- 我々は名=テーブル名といくつかの列を持つテーブルがあります。
- カラムタイプがわかりません。
- SQL要求:この要求リターンを何結果
select count(1) from tablename where column=column
、なぜ?
質問テーブル名から:SELECT COUNT(1)列=インタビューから列
select count(1) from tablename where column=column
、なぜ?
column
がヌルでない行の数を返します。これは、がUNKNOWN
であり、条件がfalse
と評価されるためです。その他の値はすべてcolumn = column
です。
私は全く同意します – Plirkee
何か "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
これは、データ型からによって異なります。ほとんどの場合、NULLでない列の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
列=列が列=列がfalseの場合、他の
は0を返すtrueの場合。このクエリは、フィールド名(なし列名)と、カウントを返します。
結果がどうなるかは間違いありません。それは '0' - ' count(*)x count(*) 'の範囲にあります。 – SomeJavaGuy
あなたはどうしてそうだと思いますか? –
あなたは列について何も言わず、価値もない:すべての値が 'null'の場合、比較' column = column'は動作しません( 'column is null'が必要です) '0'の結果を返します。すべての値が同じ場合、結果は 'count(*)'になります。そして、ここに保存されているデータに関する情報を持っていないと、この範囲のどこかにいるでしょう。編集:申し訳ありませんが、私の悪い上端はちょうど 'カウント(*)'になります。つまり、この列に 'not null'値の数を返します。 – SomeJavaGuy