Microsoft SQL Server
SELECTステートメント
サーチ…
前書き
SQLでは、 SELECT
ステートメントはテーブルやビューのようなデータコレクションからの結果セットを返します。 SELECT
ステートメントは、 WHERE
、 GROUP BY
、またはORDER BY
ようなさまざまな句で使用して、目的の結果をさらに絞り込むことができます。
テーブルからの基本的なSELECT
いくつかのテーブル(この場合はシステムテーブル)からすべての列を選択します。
SELECT *
FROM sys.objects
または、特定の列だけを選択します。
SELECT object_id, name, type, create_date
FROM sys.objects
WHERE句を使用して行をフィルタリングする
WHERE句は、条件を満たす行のみをフィルタリングします。
SELECT *
FROM sys.objects
WHERE type = 'IT'
ORDER BYを使用して結果をソートする
ORDER BY句は、返された結果セット内の行を、いくつかの列または式でソートします。
SELECT *
FROM sys.objects
ORDER BY create_date
GROUP BYを使用したグループ結果
GROUP BY句は、行をいくつかの値でグループ化します。
SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
各グループ(集計関数)にいくつかの関数を適用して、グループ内のレコードの合計または数を計算することができます。
タイプ | c |
---|---|
SQ | 3 |
S | 72 |
それ | 16 |
PK | 1 |
U | 5 |
HAVING句を使用したフィルタリンググループ
HAVING節は、条件を満たさないグループを削除します。
SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
HAVING count(*) < 10
タイプ | c |
---|---|
SQ | 3 |
PK | 1 |
U | 5 |
最初のN行だけを返す
TOP句は、結果の最初のN行だけを返します。
SELECT TOP 10 *
FROM sys.objects
OFFSET FETCHを使用したページネーション
OFFSET FETCH節は、TOPのより高度なバージョンです。 N1行をスキップして次のN2行を取ることができます:
SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY
フェッチせずにOFFSETを使用すると、最初の50行をスキップできます。
SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS
FROMなしのSELECT(データソースなし)
SELECT文はFROM句なしで実行できます。
declare @var int = 17;
SELECT @var as c1, @var + 2 as c2, 'third' as c3
この場合、式の値/結果を含む1つの行が返されます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow