0

のようなクエリを実行すると、select count(*) from myTable where (myVariable =1)その基準に適合する数値が返されます。アスタリスクを任意の数字に置き換えても、同じ答えが得られます。ここで SQL はどうなっているでしょうか。

4

5 に答える 5

1

それに相当します。

テーブル内の行数を尋ねているのは、数値nがテーブル内のn番目の列を参照することです。n列がない場合でも、これは機能します。

しかし、テーブルに関連するものを何も入力する必要がない方が良い SELECT ('X') from Tableです。

SELECT(1)の方がパフォーマンスに優れているという考え方がありますが、MSSQLは、少なくともクエリオプティマイザーが正しいプランを選択することでこれを処理します。

于 2012-05-10T12:38:06.277 に答える
1

null以外の値のチェックをカウントするため、*、フィールド名、静的な値など、null以外の値を持つ任意の値を渡すことができます。

COUNT(*)すべての行をカウントします。COUNT(yourColumn)yourColumnがNULLの行は含まれません

カウント機能を使用する多くの方法を参照してください

于 2012-05-10T12:39:27.183 に答える
1

COUNT 関数は、どの NOT NULL フィールドを COUNT 関数のパラメーターとして含めるか (つまり、括弧内) に関係なく同じ結果を返すため、COUNT 関数の構文を COUNT(1) に変更して、より適切にすることができます。データベース エンジンがデータ フィールドをフェッチする必要がないため、パフォーマンスが向上します。

ソース: SQL: COUNT 関数

于 2012-05-10T12:40:43.720 に答える
0

あまり知られていない機能は、クエリselect count(distinct someColumn) from SomeTableを実行して特定の列の一意の数を取得できることです。次に、どの列を選択するかは明らかに重要です。

そうでなければ、他の答えはすでにそれを説明しています。

于 2012-05-10T12:41:53.027 に答える
0

count(expression)の行をカウントします expression is not null

を試すとcount(1)、1 が null になることはないため、すべての行が取得されます。

を試してみるとcount(column_name)、 の行を数えますcolumn_name is not null

http://docs.oracle.com/cd/B10500_01/server.920/a96540/functions26a.htm#82699

于 2012-05-10T12:43:50.000 に答える