質問編集履歴

11

2019/07/31 13:36

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -38,9 +38,9 @@
38
38
 
39
39
 
40
40
 
41
- で、正解はDなのはわかるのですが、
41
+ で、**正解はDなのはわかるのですが、
42
42
 
43
- 解説の一部が理解できません。
43
+ 解説の一部が理解できません。**
44
44
 
45
45
 
46
46
 

10

2019/07/31 13:36

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
 
76
76
 
77
- ④「lpad(文字列, n [,文字])」は、文字列の左側に「文字」を埋め込んで長さ「n」にして戻します。選択肢Cの第2引数(戻す長さ)は、②で抜き出した文字列の長さから1を引いた値になっています。したがって、選択肢Cでは、埋め込まず逆に最後の1文字を切り捨てて戻します。このため、選択肢Cは誤りです。戻す長さは元の部品コード番号の長さなので、選択肢Dの「length(prodcd)」が正解です。
77
+ ④「lpad(文字列, n [,文字])」は、文字列の左側に「文字」を埋め込んで長さ「n」にして戻します。**選択肢Cの第2引数(戻す長さ)は、②で抜き出した文字列の長さから1を引いた値になっています。**したがって、選択肢Cでは、埋め込まず逆に最後の1文字を切り捨てて戻します。このため、選択肢Cは誤りです。戻す長さは元の部品コード番号の長さなので、選択肢Dの「length(prodcd)」が正解です。
78
78
 
79
79
 
80
80
 

9

2019/07/31 13:31

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -118,7 +118,7 @@
118
118
 
119
119
 
120
120
 
121
- 正解はDということは納得いきますが、あくまで納得できないのは、解説の「選択肢Cの第2引数は、②で抜き出した文字列の長さから1を引いた値」の一文と、その直後の「戻す長さは元の部品コード番号の長さなので、選択肢Dの「length(prodcd)」が正解」の一文が矛盾していることです。
121
+ **正解はDということは納得いきますが、あくまで納得できないのは、解説の「選択肢Cの第2引数は、②で抜き出した文字列の長さから1を引いた値」の一文と、その直後の「戻す長さは元の部品コード番号の長さなので、選択肢Dの「length(prodcd)」が正解」の一文が矛盾していることです。**
122
122
 
123
123
 
124
124
 

8

2019/07/31 12:43

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
  選択肢Cの第2引数は、
92
92
 
93
- ②で抜き出した文字列の長さ(-Cc01-001 だから9文字)から1(instra(prodcd, '-')だから、-Cc01-001の1文字目)を引いた値=8 となり、xで埋める前にすでに -Cc01-001 の9文字あるため、お尻の1文字を切り捨てて戻す、というのも理解できる。
93
+ ②で抜き出した文字列の長さ(-Cc01-001 だから9文字)から1(instr(prodcd, '-')だから、-Cc01-001の1文字目)を引いた値=8 となり、xで埋める前にすでに -Cc01-001 の9文字あるため、お尻の1文字を切り捨てて戻す、というのも理解できる。
94
94
 
95
95
  だけど、選択肢Dの第2引数も、②で抜き出した文字列の長さ(-Cc01-001 だから9文字)になるから、解説の最後の、「戻す長さは元の部品コード番号の長さなので」というのが、理解できません。
96
96
 
@@ -118,7 +118,7 @@
118
118
 
119
119
 
120
120
 
121
- 正解はDということは納得いきますが、あくまで疑問なのは、解説の「選択肢Cの第2引数は、②で抜き出した文字列の長さから1を引いた値」の一文です。
121
+ 正解はDということは納得いきますが、あくまで納得できのは、解説の「選択肢Cの第2引数は、②で抜き出した文字列の長さから1を引いた値」の一文と、その直後の「戻す長さは元の部品コード番号の長さなの、選択肢Dの「length(prodcd)」が正解」の一文が矛盾していることです。
122
122
 
123
123
 
124
124
 

7

2019/07/31 12:39

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -96,11 +96,11 @@
96
96
 
97
97
  それとも、選択肢Cの第2引数の理解が間違ってるのか。。。
98
98
 
99
- 選択肢Cの第2引数は、
99
+ **選択肢Cの第2引数は、
100
100
 
101
101
  ②で抜き出した文字列の長さから1を引いた値
102
102
 
103
- というのが誤植な気がします。
103
+ というのが誤植な気がします。**
104
104
 
105
105
  選択肢Cの第2引数は、
106
106
 

6

2019/07/31 12:31

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -76,6 +76,8 @@
76
76
 
77
77
  ④「lpad(文字列, n [,文字])」は、文字列の左側に「文字」を埋め込んで長さ「n」にして戻します。選択肢Cの第2引数(戻す長さ)は、②で抜き出した文字列の長さから1を引いた値になっています。したがって、選択肢Cでは、埋め込まず逆に最後の1文字を切り捨てて戻します。このため、選択肢Cは誤りです。戻す長さは元の部品コード番号の長さなので、選択肢Dの「length(prodcd)」が正解です。
78
78
 
79
+
80
+
79
81
  ---------------------
80
82
 
81
83
 

5

2019/07/31 12:29

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,9 @@
44
44
 
45
45
 
46
46
 
47
- 解説は、
47
+ 黒本の解説
48
+
49
+ ---------------------
48
50
 
49
51
  文字関数(特にINSTR、LPAD、SUBSTR)に関する問題です。
50
52
 
@@ -73,6 +75,8 @@
73
75
 
74
76
 
75
77
  ④「lpad(文字列, n [,文字])」は、文字列の左側に「文字」を埋め込んで長さ「n」にして戻します。選択肢Cの第2引数(戻す長さ)は、②で抜き出した文字列の長さから1を引いた値になっています。したがって、選択肢Cでは、埋め込まず逆に最後の1文字を切り捨てて戻します。このため、選択肢Cは誤りです。戻す長さは元の部品コード番号の長さなので、選択肢Dの「length(prodcd)」が正解です。
78
+
79
+ ---------------------
76
80
 
77
81
 
78
82
 

4

2019/07/31 12:27

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  とあるのですが、
82
82
 
83
- AとBは、rpadなので違うことは、わかります。
83
+ 選択肢AとBは、rpadなので違うことは、わかります。
84
84
 
85
85
  選択肢Cの第2引数は、
86
86
 

3

2019/07/31 12:26

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -112,4 +112,8 @@
112
112
 
113
113
 
114
114
 
115
+ 正解はDということは納得いきますが、あくまで疑問なのは、解説の「選択肢Cの第2引数は、②で抜き出した文字列の長さから1を引いた値」の一文です。
116
+
117
+
118
+
115
119
  ご意見お願いいたします。

2

2019/07/31 12:20

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -26,4 +26,90 @@
26
26
 
27
27
 
28
28
 
29
- B. select
29
+ B. select rpad(substr(prodcd, instr(prodcm, '-')), length(prodcd), 'x') from product
30
+
31
+
32
+
33
+ C. select lpad(substr(prodcd, instr(prodcd, '-')), length(prodcd) - instr(prodcd, '-'), 'x') from product
34
+
35
+
36
+
37
+ D. select lpad(substr(prodcd, instr(prodcd, '-')), length(prodcd), 'x') from product
38
+
39
+
40
+
41
+ で、正解はDなのはわかるのですが、
42
+
43
+ 解説の一部が理解できません。
44
+
45
+
46
+
47
+ 解説は、
48
+
49
+ 文字関数(特にINSTR、LPAD、SUBSTR)に関する問題です。
50
+
51
+ まず、選択肢Aを調べます。ネストの内側から外側に関数を評価していきます。
52
+
53
+
54
+
55
+ ①instr(prodcd, '-')
56
+
57
+ 部品コード番号の最初のハイフン「-」の位置を調べています。
58
+
59
+ 〈例: A1-Cc01-001〉instr(prodcd, '-')→3
60
+
61
+
62
+
63
+ ②substr(prodcd, instr(prodcd, '-'))
64
+
65
+ 部品コード番号の3文字目(最初のハイフン)以降の文字列を抜き出します。
66
+
67
+ 〈例: A1-Cc01-001〉substr(prodcd, instr(prodcd, '-')) → -Cc01-001
68
+
69
+
70
+
71
+ ③rpadを使っていますが、rpadは右に埋め込むので誤りです。同様に、選択肢Bも誤りです。左に埋め込むlpadが正しいので、選択肢Cを調べます。
72
+
73
+
74
+
75
+ ④「lpad(文字列, n [,文字])」は、文字列の左側に「文字」を埋め込んで長さ「n」にして戻します。選択肢Cの第2引数(戻す長さ)は、②で抜き出した文字列の長さから1を引いた値になっています。したがって、選択肢Cでは、埋め込まず逆に最後の1文字を切り捨てて戻します。このため、選択肢Cは誤りです。戻す長さは元の部品コード番号の長さなので、選択肢Dの「length(prodcd)」が正解です。
76
+
77
+
78
+
79
+
80
+
81
+ とあるのですが、
82
+
83
+ AとBは、rpadなので違うことは、わかります。
84
+
85
+ 選択肢Cの第2引数は、
86
+
87
+ ②で抜き出した文字列の長さ(-Cc01-001 だから9文字)から1(instra(prodcd, '-')だから、-Cc01-001の1文字目)を引いた値=8 となり、xで埋める前にすでに -Cc01-001 の9文字あるため、お尻の1文字を切り捨てて戻す、というのも理解できる。
88
+
89
+ だけど、選択肢Dの第2引数も、②で抜き出した文字列の長さ(-Cc01-001 だから9文字)になるから、解説の最後の、「戻す長さは元の部品コード番号の長さなので」というのが、理解できません。
90
+
91
+ それとも、選択肢Cの第2引数の理解が間違ってるのか。。。
92
+
93
+ 選択肢Cの第2引数は、
94
+
95
+ ②で抜き出した文字列の長さから1を引いた値
96
+
97
+ というのが誤植な気がします。
98
+
99
+ 選択肢Cの第2引数は、
100
+
101
+ length(prodcd) - instr(prodcd, '-')
102
+
103
+ で、prodcdは、A1-Cc01-001だから、
104
+
105
+ length(prodcd) - instr(prodcd, '-')=
106
+
107
+ 11-3=8
108
+
109
+ というのなら、理解できます。
110
+
111
+
112
+
113
+
114
+
115
+ ご意見お願いいたします。

1

2019/07/31 10:17

投稿

reirei0724
reirei0724

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,49 +1,29 @@
1
- ### 前提・実現したこと
1
+ PRODUCT表のPRODCD列の部品コード番号は、以下の形式で格納されてる。
2
2
 
3
3
 
4
4
 
5
- ここに質問の内容を詳しく書いてください。
5
+ PRODCD
6
6
 
7
- (例)PHP(CakePHP)で●●なシステムを作っています。
7
+ --------------
8
8
 
9
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
9
+ A1-Cc01-001
10
+
11
+ A1-DE01-100
12
+
13
+ …以下省略…
10
14
 
11
15
 
12
16
 
13
- ### 発生している問題・エラーメッセージ
17
+ 以下の形式で、部品コード番号の先頭番号を隠たレポートを作成するSQL文とし正しものを選びなさい。
14
18
 
15
19
 
16
20
 
17
- ```
18
-
19
- エラーメッセージ
21
+ xx-Cc01-001
20
-
21
- ```
22
22
 
23
23
 
24
24
 
25
- ### 該当のソースコード
25
+ A. select rpad(substr(prodcm, instr(prodcd, '-')), length(prodcd) - instr(prodcd, '-'), 'x') from product
26
26
 
27
27
 
28
28
 
29
- ```ここに言語名を入力
30
-
31
- ソースコード
32
-
33
- ```
34
-
35
-
36
-
37
- ### 試したこと
29
+ B. select
38
-
39
-
40
-
41
- ここに問題に対して試したことを記載してください。
42
-
43
-
44
-
45
- ### 補足情報(FW/ツールのバージョンなど)
46
-
47
-
48
-
49
- ここにより詳細な情報を記載してください。