ほぼ全ての機能を新サイトへ移行しました

Re: 問題ID:19563の正解の選択肢について

この質問の投稿一覧へ

なし Re: 問題ID:19563の正解の選択肢について

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-7-6 14:45
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
「SELECT employee_id, employee_name FROM employees WHERE INSTR(employee_name, '佐藤') = 1;」のこちらが正解になるのがなぜかわかりません。イコールのあとが2であれば正解のような気がするのですが、認識間違ってるでしょうか?
INSTR() は、第2引数の文字列が第1引数の何文字目にあるかを返すので
・1が返る:1文字目(最初の文字から)マッチしている
・2が返る:2文字目(文字列の先頭は「佐藤」で始まらない、なにか1文字先頭にある)
ということになるんですね。

単純に関数を実行してみればわかります。Oracleではないですが、同じ機能を持つのでsqlite3でやってます。
$ sqlite3
SQLite version 3.28.0 2019-04-15 14:49:49
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> select instr('テスト文字列佐藤', '佐藤');
7 ←「テスト文字列」の6文字が先にあって、7文字目から「佐藤」がマッチする
sqlite> select instr('佐藤', '佐藤');
1 ←1文字目から「佐藤」にマッチする

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.
ログイン
ユーザ名 or E-Mailアドレス:

パスワード:







プレミアムコンテンツ

受験チケット(割引)

Contact

LPI-Japan Logo

LPI Logo