データの並べ替え
ORDER BY 句は、指定された順序 (順序付けデータ) でデータを並べ替えます。列の位置を指定するには、列名のリストまたは負でない整数のリストが必要です。昇順を表すには ASC を使用し、降順を表すには DESC を使用します。デフォルトは ASC です。
返される行数を制限する
WHERE 句を使用せずに、結果の行数を制限することができます。 「TOP」句を使用すると、行数を指定した数またはパーセンテージで制限できます。
データのグループ化と集計関数の計算
集計関数は、テーブル内のデータの合計を計算します。 SQL Server は、次の集計関数を提供します:
· AVG この関数は平均を計算します。構文は次のとおりです: AVG ([ALL | DISTINCT] exPRession)
キーワード DISTINCT は、異なる値の平均を計算するためにのみ使用されます。重複する値が多数ある場合、これらの値は 1 回だけ計算されます。デフォルトは「すべて」です。
式は、1 つ以上の列を含む算術式にすることができます。
· MIN この関数は、指定された式の最小値を見つけます。構文は次のとおりです:
MIN (式) MAX この関数の機能は、指定された式の最大値を見つけることです。構文は次のとおりです。 MIN と MAX はビットには使用できません。
· SUM SUM はすべてのデータ値の合計を計算します。文法は次のとおりです: m Sum ([All | Distance] Expression)
注: Sum と AVG は数値データ型にのみ使用できます。
· COUNT 式の値の数をカウントします。構文は次のとおりです:
COUNT ([ALL | DISTINCT] 式) COUNT には別の使用法があり、選択された行の数を返すことができます。 T: SELECT NUMROWS = タイトルからカウント (*)
ジャグ関数は、カウント (*) を除くすべての空席を無視します。すべての集計関数は NULL 値がないことに基づいて計算しますが、COUNT(*) はすべての行 (NULL 値を持つ行を含む) を計算します。
1. GROUP BY 句
GROUP BY 句は、定義されたデータに基づいて小さなグループを作成し、各グループに対して集計関数の計算を実行します。言い換えれば、各グループの全体的な情報が生成されます。 GROUP BY は、複数の列をグループ化列 (グループ化列) として扱うことができます。結合された列の一意の値に関する情報が要約されます。
GROUP BY 句を使用する選択リストには、次の項目のみを含めることができます:
· 定数値。
· 結合された列。
· 表現。各式は、各グループの値を返します (集計関数と同様)。列が結合列にあるだけでなく選択リストにもある場合、結合列の一意の値ごとに複数の値が含まれるこの構造タイプは許可されません。
2. GROUP BY と HAVING HAVING 句は、GROUP BY 句を使用してクエリにデータ フィルタ条件を追加するために使用されます。 HAVING の使用法は、SELECT の WHERE 句と同じです。 GROUP BY 句を含むクエリで WHERE 句を使用することができます。 HAVING と WHERE の構文は同じです。 HAVING と WHERE の違いは次のとおりです。
· WHERE 句では、グループ化する前に条件を満たさない行が削除されますが、HAVING 句では、グループ化後に条件が適用されます。
· HAVING は条件に集計関数を含めることができますが、WHERE には含めることができません。
注: GROUP BY 句と HAVING 句では、テキスト データ型またはイメージ データ型を使用できません。
3. COMPUTE BY 句
COMPUTE BY 句は、詳細レコードまたは合計レコードを取得できます。データを小さなグループに分割し、各グループの詳細なレコード結果データ セットを作成します (SELECT など)。また、各グループの合計レコードを生成することもできます (GROUP BY など)。
COMPUT BYでは、BY句の定義は必要ありません。 BY 句が定義されていない場合、テーブル全体がグループとみなされ、2 つの結果データ セットのみが生成されます。1 つはすべての詳細レコードを含み、もう 1 つは 1 行のみを含み、合計レコードを保持します。
注: COMPUTE で BY を使用する場合、結合されたすべての列に ORDER BY を含める必要があります。
Cube 操作と Rollup 操作
CUBE 操作と ROLLUP 操作は、単純な GROUP BY よりも多くの集計値を生成できます。これらの操作は、クロス集計レポートを作成するときに役立ちます。クエリで n 個の組み合わせ列が使用される場合、集計を計算するための組み合わせは 2n 通りになります。
複数のテーブルのデータにアクセスする
単一のテーブルのデータにアクセスする方法について説明しました。複数のテーブルのデータにアクセスすることも可能です。複数のテーブルのデータにアクセスすることをテーブルの結合と呼びます。
1.クロス結合(デカルト積)
CROSS JOIN は、制約なしでテーブルを結合するだけです。 CROSS JOIN 後の結果の行数は、結合された最初の 2 つのテーブルの行数の積です。それぞれ数千行ある 2 つのテーブルを結合すると、想像を絶する結果が生じます。
2. INNER JOIN
INNER JOIN は 2 つのテーブルを結合するために最も一般的に使用される方法です。 INNER JOIN は、接続条件と呼ばれる判別式に基づいています。結合条件は WHERE 句と一緒に定義されます。結合条件は両方のテーブルの列で構成され、比較条件を使用して列の値を比較します。比較に渡された値は結果データセットに含まれます。内部 JOIN の構文は次のとおりです:
構文 1: (ANSI 92)
Select
FROM
ON
Select
FROM
FROM 句でテーブルの別名を定義でき、その別名を実際の名前の代わりにどこでも使用できます。
注: 結合条件として使用される列に null 値がある場合、null 値はどの値とも一致できないため、結果には null 値を含む行は含まれません。
3. 左外部結合
内部結合では、2 つのテーブルで一致する行のみが結果データセットに含めることができます。ただし、左外部結合では、左側のテーブルのすべての行が結果データ セットに表示されます。左側のテーブルの行に右側のテーブルに一致する行がない場合は、NULL 値を使用して右側のテーブルの値が置き換えられます。そしてそれに参加してください。
構文は次のとおりです: (ANSI 92)
Select
FROM
ON
右外部結合は、右のテーブルが外部テーブルとして使用される点を除き、左外部結合と似ています (右のテーブルのすべての行が結果データ セットに含まれます)。
構文は次のとおりです:
Select
FROM
ON
完全外部結合では、両方のテーブルのすべての行が結果のデータセットに含まれます。
構文は次のとおりです:
Select
ON
Case ステートメント
条件ごとに異なる結果値が生成される場合、Case ステートメントを使用できます。
Case ステートメントは、定義されたすべての条件を計算し、条件が true かどうかに基づいて結果を返します。
構文は次のとおりです:
CASE [
WHEN
[ELSE
END
Input_expression は、任意の有効な SQL Server 式またはブール式です。
When_expression は、有効な SQL Server 式またはブール式です。この式は、Input_expression と比較されます。Input_expression が定義されていない場合、When_expression はブール式である必要があります。
Result_expression は、任意の有効な SQL Server 式です。 When_expression と Input_expression の比較で TRUE が返された場合 (Input_expression が定義されている場合)、または When_expression が TRUE と評価された場合、式が評価され、その結果が返されます。それ以外の場合は、Else_expression の式が評価され、その結果が返されます。 E 例: leSelect AU_FNAME, AU_LNAME,
State = CASE State
WHEN 'The CALIFORNIA's' KSANSASSAMENSAS'
END
From Authors
Union
UNION ステートメント 多く 各クエリの結果は、結果セットに結合されます。
構文は次のとおりです: SELECT
FROM
WHERE
UNION [ALL]
SELECT
Go コマンド Go コマンドは、クエリ バッチの終了をマークするために使用されます。クエリ バッチは、一緒に実行される TSQL ステートメントのコレクションです。 Go は、Osql または SQL Server クエリ アナライザーと連携して動作します。
上記は SQL Server 7.0 入門 (パート 3) の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。