LEN 関数を使用します
LEN 関数の使い方
文字数 = LEN('文字列')
- 文字列末尾の半角スペースは無視されます。
- 文字列が NULL の場合はゼロではなく NULL が返ります。
- サロゲートペア文字は 2 文字として扱われます。
実行例
--半角文字 -> 結果 10
SELECT LEN('1234567890')
--全角文字 -> 結果 10
SELECT LEN('1234567890')
--空文字列 -> 結果 0
SELECT LEN('')
--末尾に半角スペース -> 結果 10
SELECT LEN('1234567890 ')
--末尾に半角スペース(対策版) -> 結果 20
SELECT LEN('1234567890 ' + '@') - 1
SELECT LEN(REPLACE('1234567890 ', ' ', '@'))
--半角スペースのみ -> 結果 0
SELECT LEN(' ')
--半角スペースのみ(対策版) -> 結果 20
SELECT LEN(' ' + '@') - 1
SELECT LEN(REPLACE(' ', ' ', '@'))
--NULL -> 結果 NULL
SELECT LEN(NULL)
--NULL の 結果も ゼロに
SELECT LEN(ISNULL(NULL, ''))
--サロゲートペア -> 結果 2
SELECT LEN('𠀋')
注意
-
末尾の半角スペースは無視されます。
--末尾に半角スペース -> 結果 10 SELECT LEN('1234567890 ') --半角スペースのみ -> 結果 0 SELECT LEN(' ')
対策
--末尾に文字を付与し、その分引く -> 結果 20 SELECT LEN('1234567890 ' + '@') - 1 --スペースを別の文字に置換する -> 結果 20 SELECT LEN(REPLACE('1234567890 ', ' ', '@'))
-
NULL の場合、ゼロではなく NULL が返ります。
--NULL -> 結果 NULL SELECT LEN(NULL)
対策
--ISNULL 関数で 空文字列に変換 -> 結果 0 SELECT LEN(ISNULL(NULL, ''))
- サロゲートペア文字は 2 文字として扱われます。
類似記事
検証環境
- Microsoft SQL Server Developer (64-bit) プラットフォーム:Windows バージョン:14.0.2002.14
- Microsoft SQL Server Management Studio 14.0.17254.0