SQL Serverの文字列操作関数を徹底解説!初心者向けガイドと演習問題付き

SQL Serverには、文字列を操作するための強力な関数が豊富に用意されています。これらを活用すれば、データベース内での文字列の操作や変換が効率的に行えます。

本記事では、SQL Serverの主要な文字列操作関数をわかりやすく解説し、学んだ内容を確認できる演習問題も提供します。


文字列操作関数とは?

文字列操作関数は、テキストデータを処理するためのSQL Serverの機能です。例えば、文字列の一部を切り出したり、特定の文字を置き換えたりすることが可能です。

以下に主な文字列操作関数を挙げます。

  • LEN: 文字列の長さを取得する
  • LEFT, RIGHT: 文字列の先頭または末尾から指定した文字数を取得する
  • SUBSTRING: 文字列の一部を切り出す
  • CHARINDEX: 文字列内で特定の文字や文字列が最初に現れる位置を取得する
  • REPLACE: 特定の文字列を別の文字列に置き換える
  • CONCAT: 文字列を結合する
  • UPPER, LOWER: 大文字・小文字に変換する
  • TRIM, LTRIM, RTRIM: 空白文字を削除する

これらを理解すれば、データベース操作の幅が広がります。


主な文字列操作関数の詳細解説

LEN関数

説明

文字列の長さを取得します。

構文

LEN(string)

SELECT LEN('SQL Server');
-- 結果: 10 (空白も1文字としてカウント)

LEFT, RIGHT関数

説明

LEFTは文字列の左側から、RIGHTは右側から指定した文字数を取得します。

構文
LEFT(string, number_of_characters)
RIGHT(string, number_of_characters)
SELECT LEFT('SQL Server', 3);  -- 結果: SQL
SELECT RIGHT('SQL Server', 6); -- 結果: Server

SUBSTRING関数

説明

文字列の指定した位置から特定の長さ分を取得します。

構文
SUBSTRING(string, start_position, length)
SELECT SUBSTRING('SQL Server', 5, 6); -- 結果: Server

CHARINDEX関数

説明

文字列内で特定の文字や部分文字列が最初に現れる位置を返します。見つからない場合は0を返します。

構文
CHARINDEX(substring, string)
SELECT CHARINDEX('Server', 'SQL Server'); -- 結果: 5

REPLACE関数

説明

特定の文字列を別の文字列に置き換えます。

構文
REPLACE(string, old_string, new_string)
SELECT REPLACE('SQL Server', 'SQL', 'Azure'); -- 結果: Azure Server

CONCAT関数

説明

複数の文字列を結合します。

構文
CONCAT(string1, string2, ...)
SELECT CONCAT('SQL', ' ', 'Server'); -- 結果: SQL Server

UPPER, LOWER関数

説明

文字列を大文字または小文字に変換します。

構文
UPPER(string)
LOWER(string)
SELECT UPPER('sql server'); -- 結果: SQL SERVER
SELECT LOWER('SQL SERVER'); -- 結果: sql server

TRIM, LTRIM, RTRIM関数

説明

TRIMは両端の空白を、LTRIMは左側の空白を、RTRIMは右側の空白を削除します。

構文
TRIM(string)
LTRIM(string)
RTRIM(string)
SELECT TRIM('   SQL Server   '); -- 結果: SQL Server
SELECT LTRIM('   SQL Server'); -- 結果: SQL Server
SELECT RTRIM('SQL Server   '); -- 結果: SQL Server

演習問題

問題1: 文字列の長さを計算する

次のSQL文を実行して、結果を求めてください。

SELECT LEN('Hello World!');

問題2: 部分文字列を抽出する

「SQL Server」の文字列から「SQL」の部分を抽出してください。

問題3: 特定の文字列を置換する

「SQL Server」という文字列の「SQL」を「Azure」に置き換えてください。

問題4: 文字列を結合する

次の値を結合し、「Database Management Systems」という文字列を作成してください。

  • string1 = ‘Database’
  • string2 = ‘Management’
  • string3 = ‘Systems’

問題5: 空白を削除する

次の文字列から両端の空白を削除してください。

  • string1 = ‘ SQL Server ‘

解答例

解答1:

SELECT LEN('Hello World!'); -- 結果: 12

解答2:

SELECT LEFT('SQL Server', 3); -- 結果: SQL

解答3:

SELECT REPLACE('SQL Server', 'SQL', 'Azure'); -- 結果: Azure Server

解答4:

SELECT CONCAT('Database', ' ', 'Management', ' ', 'Systems'); -- 結果: Database Management Systems

解答5:

SELECT TRIM('   SQL Server   '); -- 結果: SQL Server

まとめ

SQL Serverの文字列操作関数は、日常的なデータ処理を簡略化する強力なツールです。

本記事で紹介した関数を理解し、適切に活用すれば、データの検索や変換の効率が大幅に向上します。

ぜひ、この記事で学んだことを実際のSQLクエリで試してみてください!