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 |