PREPARATION
受験対策

Silverの例題解説
「S3.2 組み込み関数」

今回は、Silverの「S3 開発/SQL - S3.2 組み込み関数」からの出題です。

例題

3.02

以下のようなデータを持つテーブル emp がある。

id | firstname  |  lastname
-- + -----------+ -----------
1  | Sadaharu   | Oh
2  | Shigeo     | Nagashima
3  | Ichiro     | Suzuki

すべての行について firstname と lastname を連結して出力する適切な SQL 文を以下からすべて選びなさい。


  1. SELECT firstname, lastname FROM emp;
  2. SELECT firstname + lastname FROM emp;
  3. SELECT firstname . lastname FROM emp;
  4. SELECT firstname || lastname FROM emp;

  5. SELECT concat(firstname, lastname) FROM emp;

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2011年8月19日

解答と解説

文字列を連結するための演算子として ANSI SQL では || が使われますが、実装は RDBMS の種類によって異なり、+ 演算子を使うものやconcat() 関数を使うものなどもあります。
PostgreSQL では || 演算子を使って文字列の連結を行います。
また、PostgreSQL 9.1以降ではconcat()関数でも文字列の連結が可能です。

従って正解はDとEです。

 

実際に実行すると、以下のような結果が得られます。

?column?
-----------------
SadaharuOh
ShigeoNagashima
IchiroSuzuki
(3 rows)

ローマ字で記述された名前を連結するときは、姓名の間にスペースを入れた方が良いですね。
|| 演算子を使って3つ以上の文字列を連結することも可能です。例えば

SELECT firstname || ' ' || lastname FROM emp;

とすれば、姓名の間にスペースが入ります。

 

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

企業の基幹システムや業務システムでの
OSS-DBの採用がますます拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定資格になります

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

LPI-Japan
Platinum Sponsors