問題ID:19516

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2017-6-15 16:48
satou1144  新米   投稿数: 1
PRODUCTS表の製品名に「HITS_」と「's」が順番で含まれている行を検索する条件として、正しいものはどれですか(該当するものを全て選択して下さい)。

○ WHERE prod_name LIKE '%HITSW_%''s%' ESCAPE 'W'
○ WHERE prod_name LIKE q'(%HITSW_%'s%)' ESCAPE 'W'
WHERE prod_name LIKE q'(%HITS_%'s%)'
WHERE prod_name LIKE '%HITS_'s%'
WHERE prod_name = q'(%HITSW_%'s%)' ESCAPE 'W'

問題がこのようになっており、正解に○をつけてあります。
ここで疑問なのが、回答の一番上、

WHERE prod_name LIKE '%HITSW_%''s%' ESCAPE 'W'

こちらの、'%HITSW_% ''s%'の部分です。
この場合の一重引用符を二回続けた後に、もう一度「'」を記述するべきだと思ったのですが、いかがでしょうか?

正しくは
'%HITW_%'''s%になるのではないでしょうか?

もし間違いでしたら、申し訳ございません。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2017-6-20 18:09
quensan  長老   投稿数: 119
一重引用符を2つ続けて記述するのが正しいのですが、なぜもう1つ必要だと思われましたか?
3つだとエラーになりました。

SQL> SELECT prod_name
FROM products
WHERE prod_name LIKE '%HITSW_%'''s%' ESCAPE 'W';
ERROR:
ORA-01756: 引用符付き文字列が正しく終了していません

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.