SQL Serverには、文字列を操作するための強力な関数が豊富に用意されています。これらを活用すれば、データベース内での文字列の操作や変換が効率的に行えます。
本記事では、SQL Serverの主要な文字列操作関数をわかりやすく解説し、学んだ内容を確認できる演習問題も提供します。
文字列操作関数とは?
文字列操作関数は、テキストデータを処理するためのSQL Serverの機能です。例えば、文字列の一部を切り出したり、特定の文字を置き換えたりすることが可能です。
以下に主な文字列操作関数を挙げます。
- LEN: 文字列の長さを取得する
- LEFT, RIGHT: 文字列の先頭または末尾から指定した文字数を取得する
- SUBSTRING: 文字列の一部を切り出す
- CHARINDEX: 文字列内で特定の文字や文字列が最初に現れる位置を取得する
- REPLACE: 特定の文字列を別の文字列に置き換える
- CONCAT: 文字列を結合する
- UPPER, LOWER: 大文字・小文字に変換する
- TRIM, LTRIM, RTRIM: 空白文字を削除する
これらを理解すれば、データベース操作の幅が広がります。
主な文字列操作関数の詳細解説
LEN関数
例
SELECT LEN('SQL Server');
-- 結果: 10 (空白も1文字としてカウント)
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関数
構文
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(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クエリで試してみてください!