SQLのTRIM関数を使った文字列操作について、基本的な使い方から実践的なテクニックまでを解説します。データクレンジングやバリデーションに必須の機能ですが、あなたは正しく使いこなせていますか?
SQLの文字列変換と型変更の基本から応用まで完全解説
SQLでの文字列変換について、基本的な関数から実践的な使用例まで詳しく解説します。データ型の変換や文字列操作の実装方法について、あなたは正しく理解できていますか?
文字列変換の基本となるのは、CAST関数とCONVERT関数です。これらの関数を使用することで、様々なデータ型間の変換が可能になります。
-- 数値から文字列への変換
SELECT CAST(12345 AS VARCHAR(10)) AS str_num
-- 日付から文字列への変換
SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS str_date
特に注意が必要なのは、変換時の桁数指定です。VARCHAR型に変換する際は、十分な桁数を確保する必要があります。
数値データと文字列の相互変換では、フォーマット指定が重要になります。
-- 数値のフォーマット付き変換
SELECT FORMAT(1234567.89, 'N2') AS formatted_num
-- 通貨形式への変換
SELECT FORMAT(1234567.89, 'C', 'ja-JP') AS currency_jp
また、STR関数を使用すると、より細かい制御が可能です:
SELECT STR(123.45, 8, 2) AS formatted_str
日付データの文字列変換では、様々なフォーマットパターンが利用可能です。
-- 標準的な日付形式
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) AS jp_date
-- カスタム形式
SELECT FORMAT(GETDATE(), 'yyyy年MM月dd日') AS custom_date
日付形式のコード一覧:
コード | 出力形式 | 例 |
---|---|---|
111 | yyyy/mm/dd | 2024/12/17 |
112 | yyyymmdd | 20241217 |
23 | yyyy-mm-dd | 2024-12-17 |
特殊文字を含む文字列の変換では、REPLACE関数と組み合わせた処理が効果的です。
-- 改行コードの置換
UPDATE table_name
SET column_name = REPLACE(
REPLACE(column_name, CHAR(13), ''),
CHAR(10), ''
)
-- 全角・半角変換
SELECT CONVERT(VARCHAR, NCHAR(0x3000)) AS space_convert
大量のデータを処理する際は、変換処理のパフォーマンスに注意が必要です。
パフォーマンス改善のポイント:
-- パフォーマンスを考慮した変換例
SELECT TOP 1000
CAST(numeric_column AS VARCHAR(20))
FROM large_table
WHERE ISNUMERIC(string_column) = 1
変換処理を含むクエリのパフォーマンス比較:
変換方法 | 処理時間 | メモリ使用量 |
---|---|---|
CAST | 低 | 中 |
CONVERT | 中 | 低 |
FORMAT | 高 | 高 |
これらの関数を適切に使い分けることで、効率的な文字列変換処理が実現できます。
Microsoft公式ドキュメント - CAST と CONVERT の詳細な使用方法について