SQL Serverでデータを取得する基本構文「SELECT文」の使い方
SQL Serverでデータを取得する際の中心となるのがSELECT文です。
「どの列を、どのテーブルから取得するのか」を明確に指定することで、必要な情報だけを取り出せます。
本記事では、SELECT文の基本から実務で頻出の書き方までを体系的に整理します。
目次
SELECT文とは
SELECT文は、テーブルから必要な列を取り出して結果セットとして返すための命令です。
全列の取得、特定列のみの取得、条件での抽出、並び替え、上位件数の取得など、基本的な読み取り操作の大半を担います。
基本構文と書き方
最小構成は次のとおりです。
SELECT Column1, Column2
FROM SchemaName.TableName;
全列を取得する場合はアスタリスクを使います。ただし、実務では列の明示指定が推奨です。
SELECT *
FROM SchemaName.TableName;
WHERE句で条件を指定
WHERE句で行を絞り込みます。比較・論理・パターン・範囲・NULL判定などを組み合わせ可能です。
SELECT EmployeeId, FullName, DepartmentId
FROM dbo.Employees
WHERE DepartmentId = 10 AND IsActive = 1;
ORDER BYで並び替え
結果を昇順(ASC)/降順(DESC)で並べ替えます。省略時はASCです。
SELECT ProductId, ProductName, UnitPrice
FROM dbo.Products
ORDER BY UnitPrice DESC, ProductId ASC;
SELECT DISTINCTで重複排除
重複行をまとめて一意にしたいときはDISTINCTを使います。
SELECT DISTINCT CategoryId
FROM dbo.Products;
列・テーブルのエイリアス(AS)
可読性や結果整形のためにエイリアスを付けます。ASは省略可ですが、明示推奨です。
SELECT p.ProductId AS Id, p.ProductName AS Name, p.UnitPrice AS Price
FROM dbo.Products AS p;
TOP句で上位N件を取得
上位N件や割合を取得できます。ORDER BYと併用して意味のある上位順にします。
SELECT TOP 10 ProductId, ProductName, UnitPrice
FROM dbo.Products
ORDER BY UnitPrice DESC;
NULLの扱いと注意点
NULLは「未知/未設定」を表し、`=` では比較できません。`IS NULL` / `IS NOT NULL` を使います。
SELECT OrderId, ShippedDate
FROM dbo.Orders
WHERE ShippedDate IS NULL;
式・関数を列に書く
算術式や組み込み関数で計算列を作れます(可読性のためエイリアス付与を推奨)。
SELECT OrderId,
Quantity * UnitPrice AS LineAmount,
GETDATE() AS RetrievedAt
FROM dbo.OrderDetails;
スキーマ名・三部構成名
テーブル参照は原則スキーマ名を付けます。データベースを跨ぐ参照では三部構成(Database.Schema.Table)を使用します。
SELECT *
FROM SalesDB.dbo.Orders;
実務での活用例
一覧表示、検索、集計の下準備など、SELECTは日常業務で最も多用されます。
代表的なパターンを3つ示します。
🔹 例1:部署別の社員一覧
SELECT EmployeeId, FullName, DepartmentId
FROM dbo.Employees
WHERE DepartmentId = 5;
🔹 例2:10万円以上の注文を抽出
SELECT OrderId, CustomerId, Amount
FROM dbo.Orders
WHERE Amount >= 100000;
🔹 例3:価格の高い順に上位10件
SELECT TOP 10 ProductId, ProductName, UnitPrice
FROM dbo.Products
ORDER BY UnitPrice DESC;
まとめ
SELECT文は、SQL Serverの操作を支える基礎文です。
- 基本形:SELECT 列 FROM スキーマ.テーブル
- WHEREで絞り込み、ORDER BYで順序付け
- DISTINCT/AS/TOP/NULL/関数 などの基本要素を押さえる
まずは列を明示し、読み手に分かる名前(エイリアス)を付ける習慣から始めましょう。
参考リンク

補足: 本記事は基本機能に絞っています(OFFSET FETCHやSTRING_AGGなどの上級機能は別記事で扱います)。
※2025/10/28 更新
0 件のコメント:
コメントを投稿