サーチ…


前書き

SQLでは、 SELECTステートメントはテーブルやビューのようなデータコレクションからの結果セットを返します。 SELECTステートメントは、 WHEREGROUP 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