オーロラさんの勉強帳

SESのロースキル客先常駐勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。

【SQL】CONCAT関数 (ORACLE DATABASE 12C SQL基礎)

ORACLE DATABASE 12c SQL基礎(1Z0-061)の試験範囲でもある、
CONCAT関数の使用方法を紹介します。


目次

CONCAT関数の使い方

CONCAT関数は引数で指定した2つの文字データを結合します。
文字列結合の連結演算子「||」と同じ使い方ができます。
CONCAT関数は2つの文字列の結合に対してと制限があるのに対して、連結演算子「||」は文字列データの個数に制限なく結合ができます。

CONCAT関数の書式

CONCAT(文字データ)

CONCAT(文字データ)の使用例

--2つの文字データを結合する例
SELECT CONCAT('ORACLE','DATABASE') FROM DUAL;
SELECT CONCAT('ORACLE','1Z0-061') FROM DUAL;


上記SQLを実行すると2つの文字列データを結合した値が返ってきます。
f:id:auroralights:20210424223555p:plain


2つの以上の引数を指定すると、以下のように「ORA-00909:引数の個数が無効です」とエラーが返されます。
f:id:auroralights:20210430015314p:plain

【SQL】SUBSTR関数の使い方 (ORACLE DATABASE 12C SQL基礎)

ORACLE DATABASE 12c SQL基礎(1Z0-061)の試験範囲でもある、
SUBSTR関数の使用方法を紹介します。
f:id:auroralights:20210425194447p:plain

目次

SUBSTR関数の使い方

SUBSTR関数は引数で指定した文字データから指定した開始位置から指定した桁数の文字を抽出する関数です。

SUBSTR関数の書式

SUBSTR(文字データ,開始位置,取り出す文字数)

  • 「開始位置」に負の数字(-x)を指定した場合は、文字データの末尾から数えてx番目の文字から文字を取り出します。
  • 「開始位置」は1で始まります。0を指定した場合も1を指定したことになります。
  • 「取り出す文字数」は省略可能です。「取り出す文字数」を省略した場合は、開始位置からデータの最後の文字までを返します。

1.SUBSTR関数の使用例

開始位置、取り出す文字位置を指定した場合

SELECT SUBSTR('ORACLE 1Z0-061学習',2,4) FROM DUAL;

文字データ「ORACLE 1Z0-061学習」の2文字目「R」から4文字を取り出すので、「RACL」が返されます。

開始位置に1を指定した場合、0を指定した場合

SELECT SUBSTR('ORACLE 1Z0-061学習',1,6) FROM DUAL;
SELECT SUBSTR('ORACLE 1Z0-061学習',0,6) FROM DUAL;

開始位置に「0」を指定した場合も「1」を指定したとみなされるため、同じ結果が返ってきます。
「ORACLE 1Z0-061学習」の1文字目の「O」から6文字を取り出すので「ORACLE」が返されます。

取り出す文字数を省略した場合

SELECT SUBSTR('ORACLE 1Z0-061学習',8) FROM DUAL;

文字データ「ORACLE 1Z0-061学習」の8文字目から文字データの末尾まで取り出すので「1Z0-061学習」が返されます。

開始位置に負の値を指定した場合

SELECT SUBSTR('123456789',-5,3) FROM DUAL;
SELECT SUBSTR('123456789',-5) FROM DUAL;

末尾からマイナス5文字目から文字を取り出します。
f:id:auroralights:20210425194041p:plain

取り出す文字数を文字データの文字数以上指定した場合

SELECT SUBSTR('123456789',2,100) FROM DUAL;
SELECT SUBSTR('123456789',-2,100) FROM DUAL;

エラーになることはなく、文字データの末尾まで取り出すことができます。
f:id:auroralights:20210425194239p:plain

【SQL】LENGTH関数の使い方 (ORACLE DATABASE 12C SQL基礎)

ORACLE DATABASE 12c SQL基礎(1Z0-061)の試験範囲でもある、
LENGTHの使用方法を紹介します。


目次

LENGTH関数の使い方

LENGTH関数は引数で指定した文字データの文字数を返します。
空白(スペース)やハイフンも1文字としてカウントします。
全角・半角の区別はなく、1文字は1文字としてカウントします。
文字データがCHAR型(VARCHAR2型)の場合は、自動補完されるスペースも文字数としてカウントします。

LENGTH関数の書式

LENGTH(文字データ)

LENGTH関数の使用例

--文字データの文字数をカウントする
SELECT LENGTH('ORACLE DATABASE  ') FROM DUAL;
SELECT LENGTH('ORACLE') FROM DUAL;
SELECT LENGTH('オラクル oracle') FROM DUAL;


上記3つのSQLを実行してみます。
f:id:auroralights:20210424221618p:plain

1つめのSQLは空白(スペース)も含めて「17」と返ってきています。
2つめのSQLは全角文字も1文字として「6」と返ってきています。
3つめのSQLは日本語、全角スペース、半角文字のすべてを1文字は1文字として扱い「11」と返ってきています。