文字列の切り出し
配点 : 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_ENG_NAME)の先頭から10文字を表示しなさい。ただし、半角スペースは文字数にはカウントしないで取り除いて表示すること。また、社員英字名が未入力(NULL)の場合は、CUTOUT_STRに'未入力'と表示すること。

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

  • EMP_CODE → CODE
  • EMP_LAST_NAMEとEMP_FIRST_NAMEを連結して表示→ NAME
  • EMP_ENG_NAME → ENG_NAME
  • 切り出したEMP_ENG_NAME → CUTOUT_STR

表示順

  1. 表示項目CUTOUT_STRの降順
  2. 表示項目CODEの降順

表示フォーマット

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

CODE NAME ENG_NAME CUTOUT_STR
10005 山谷健悟 NULL 未入力
10001 佐々木さくや SAKUYA Sasaki SAKUYASasa
10000 山田秀行 Hideyuki Yamada HideyukiYa
10002 山 田 秀行 HIDEYUKI YAMADA HIDEYUKIYA
10007 山田秀行

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


テーブル定義

テーブル名: EMP

主キー 列名 データ型 必須 デフォルト値
✔︎ EMP_CODE VARCHAR ✔︎ NULL
EMP_LAST_NAME VARCHAR ✔︎ NULL
EMP_FIRST_NAME VARCHAR ✔︎ NULL
EMP_KANA_NAME VARCHAR NULL
EMP_ENG_NAME VARCHAR NULL
EMAIL_ACCOUNT VARCHAR NULL
DEPT_CODE VARCHAR ✔︎ NULL
START_DATE VARCHAR NULL
VALID_FLG VARCHAR ✔︎ '1'
UPDATE_USER_NAME VARCHAR 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 START_DATE VALID_FLG UPDATE_USER_NAME USER_UPDATE_DATETIME
10000 山田 秀行 ヤマダヒデユキ Hideyuki Yamada 10000@test.jp 1000 2024-04-01 1 SYSTEM 2024-02-22 22:22:22
10001 佐々木 さくや ササキサクヤ SAKUYA Sasaki 10001@test.jp 0000 2024-04-01 1 SYSTEM 2024-02-22 22:22:22
10002 山 田 秀行 ヤマダヒデユキ HIDEYUKI YAMADA 10002@test.jp 2000 2024-04-01 1 SYSTEM 2024-02-22 22:22:22
10005 山谷 健悟 ヤマヤケンゴ NULL 10005@test.jp A200 2024-04-01 1 SYSTEM 2024-02-22 22:22:22
10007 山田 秀行 ヤマダヒデユキ 10007@test.jp A100 2024-04-01 0 SYSTEM 2024-02-22 22:22:22

Sorry, Japanese Only.