SQL中で文字列の文字数を取得する関数としてSQL92/99ではCHAR_LENGTH関数が定義されています.しかし,多くのDBMSは独自で同様の機能をもつ関数を用意しています.以下に各DBMSごとに使用可能な関数を示します.
| DBMS | SQL |
|---|---|
| Access | LEN |
| SQLServer | LEN |
| Oracle | LENGTH |
| MySQL | CHAR_LENGTH |
| CHARACTER_LENGTH | |
| PostgreSQL | LENGTH |
| CHAR_LENGTH | |
| CHARACTER_LENGTH |
ここでは各DBMSごとに文字列の文字数を取得する方法を紹介します.
AccessとSQLServerはLEN関数を使用します.
SQLサンプル
LEN関数を使用して文字列の文字数を取得する例を以下に示します.
SELECT LEN('チャーリー');
結果
| SELECT LEN('チャーリー') |
|---|
| 5 |
OracleはLENGTH関数を使用します.
SQLサンプル
LENGTH関数を使用して文字列の文字数を取得する例を以下に示します.
SELECT LENGTH('スヌーピー')
結果
| SELECT LENGTH('スヌーピー') |
|---|
| 5 |
MySQLはCHAR_LENGTH関数かCHARACTER_LENGTH関数を使用します.2つの関数は名前が違うだけで機能は同一です.
SQLサンプル
CHAR_LENGTH関数を使用して文字列の文字数を取得する例を以下に示します.
SELECT CHAR_LENGTH('ルーシー')
結果
| SELECT CHAR_LENGTH('ルーシー') |
|---|
| 4 |
なお,MySQLにはLENGTH関数が用意されていますが,MySQLのLENGTH関数は文字数ではなくバイト数を返す関数ですので,注意が必要です.
PostgreSQLはLENGTH関数,CHAR_LENGTH関数,
CHARACTER_LENGTH関数のいずれかを使用します.いずれの関数も機能は同一です.
SQLサンプル
LENGTH関数を使用して文字列の文字数を取得する例を以下に示します.
SELECT LENGTH('スヌーピー')
結果
| SELECT LENGTH('スヌーピー') |
|---|
| 5 |