同姓同名抽出
配点 : 20点難易度 : 2
制限実行時間 : 1000ms制限メモリ使用量 : 128 MB
SQLiteの注意点

TOPSIC SQLでは、SQLの実行環境にSQLiteを使用しています。SQLite以外のRDBMSの文法を使用することはできません。
問題を解く際に注意すべきSQLiteの制約について、以下に記載してありますのでご確認下さい。

  1. NUMERIC、INTEGER、REALは、自身のクラスへの変換が推奨されていますが、変換できなかった場合でも、そのまま格納されます。
  2. 新しくデータを追加した場合、既に格納されているデータの中で ROWID の値が最大のものを探し、それに1を加えた値が新しく追加されるデータの ROWID の値として保存されます。
  3. 外部結合は、左外部結合を行う LEFT OUTER JOIN 句のみ使用できます。
    ※2022年12月以降、LEFT / RIGHT / FULL OUTER JOIN が使用可能となりました。
  4. 指定した日付と時刻のタイムゾーンはUTCとして扱われます。
  5. 日付関数や文字列関数については、SQLiteで固有の関数があります。
  6. テーブル項目の論理名が「◯◯日」となっている場合は、日付項目の時分秒は設定されていません。論理名が「◯◯日時」となっている場合は、日付項目の時分秒まで設定されています。
    • 「受注日」の場合は「2021-01-01」
    • 「受注日時」の場合は「2021-01-01 15:15:15」

その他のSQLiteの制約については、SQLiteの公式ドキュメントをご確認ください。
また、ER図の読み方やSQLiteの関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

社員テーブル(EMP)に登録されているデータで、社員姓(EMP_LAST_NAME)と社員名(EMP_FIRST_NAME)がそれぞれ同じ、同姓同名の社員を表示しなさい。有効なデータ(VALID_FLG = '1')のみ対象とし、社員姓、社員名に半角スペースが含まれている場合は、除去して比較すること。

表示項目は以下とする。(エイリアスを使用し→の項目名とする)

  • EMP_CODE → CODE
  • EMP_LAST_NAME → SURNAME
  • EMP_FIRST_NAME → NAME

表示順

  1. スペースを除去した社員姓名の昇順
  2. EMP_CODEの昇順

表示フォーマット

※あくまでフォーマットを示すもので、正解例ではありません。行数も正解とは異なります。

CODE SURNAME NAME
10004 千島 大志
10010 千 島 大 志
10006 小山 新吾
10009 小 山 新 吾

ER図 (半角:物理名、全角:論理名)


テーブル定義

テーブル名: EMP

主キー 列名 データ型 必須 デフォルト値
✔︎ EMP_CODE VARCHAR(10) ✔︎ NULL
EMP_LAST_NAME VARCHAR(50) ✔︎ NULL
EMP_FIRST_NAME VARCHAR(50) ✔︎ NULL
EMP_KANA_NAME VARCHAR(50) NULL
EMP_ENG_NAME VARCHAR(50) NULL
EMAIL_ACCOUNT VARCHAR(50) NULL
DEPT_CODE VARCHAR(10) ✔︎ NULL
VALID_FLG VARCHAR(1) ✔︎ '1'
UPDATE_USER_NAME VARCHAR(50) NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

サンプルデータ

テーブル名: EMP

EMP_CODE EMP_LAST_NAME EMP_FIRST_NAME EMP_KANA_NAME EMP_ENG_NAME EMAIL_ACCOUNT DEPT_CODE VALID_FLG UPDATE_USER_NAME USER_UPDATE_DATETIME
10004 千島 大志 チシマタイシ Taishi Chishima 10004@test.jp 120 1 SYSTEM 2020-02-22 22:22:22
10005 山谷 健悟 ヤマヤケンゴ Kengo Yamaya 10005@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10006 小山 新吾 コヤマシンゴ Koyama Singo 10006@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10007 山田 秀行 ヤマダヒデユキ Hideyuki Yamada 10007@test.jp 111 0 SYSTEM 2020-02-22 22:22:22
10008 山 田 秀 行 ヤマダヒデユキ Ichiro Yamazaki 10008@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10009 小 山 新 吾 コヤマシンゴ Koyama Singo 10009@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
10010 千 島 大 志 チシマタイシ Taishi Chishima 10027@test.jp 111 1 SYSTEM 2020-02-22 22:22:22
Sorry, Japanese Only.