39. View the Exhibit and examine the description of the PRODUCT_INFORMATION table.
Which SQL statement would retrieve(检索) from the table the number of products having LIST_PRICE as NULL?(求值为null的行数)
比较null值用is NULL,任何NULL不等于其他NULL,使用count(列名)会忽略列中值为NULL的行,count(*)返回记录数,NULL也算一条记录
A. SELECT COUNT(list_price)
FROM product_information
WHERE list_price IS NULL
解释: COUNT(list_price)返回list_price不为NULL的个数
B. SELECT COUNT(list_price)
FROM product_information
WHERE list_price = NULL
解释: 值为NULL写作is NULL,不可写为= NULL
C. SELECT COUNT(NVL(list_price, 0))(right)
FROM product_information
WHERE list_price IS NULL
解释: nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value
D. SELECT COUNT(DISTINCT list_price)
FROM product_information
WHERE list_price IS NULL
解释: DISTINCT是去除重复的关键字,不管有没有DISTINCT关键字,count()都返回不是null的个数,
以上信息来自:http://hz.togogo.net/BrainJam/wenxian/2013/0507/676.html
看一个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276SQL> select EMPLOYEE_ID, MANAGER_ID ,COMMISSION_PCt from hr.employees; EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 198 124 199 124 200 101 201 100 202 201 203 101 204 101 205 101 206 205 100 101 100 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 102 100 103 102 104 103 105 103 106 103 107 103 108 101 109 108 110 108 111 108 112 108 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 113 108 114 100 115 114 116 114 117 114 118 114 119 114 120 100 121 100 122 100 123 100 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 124 100 125 120 126 120 127 120 128 120 129 121 130 121 131 121 132 121 133 122 134 122 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 135 122 136 122 137 123 138 123 139 123 140 123 141 124 142 124 143 124 144 124 145 100 .4 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 146 100 .3 147 100 .3 148 100 .3 149 100 .2 150 145 .3 151 145 .25 152 145 .25 153 145 .2 154 145 .2 155 145 .15 156 146 .35 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 157 146 .35 158 146 .35 159 146 .3 160 146 .3 161 146 .25 162 147 .25 163 147 .15 164 147 .1 165 147 .1 166 147 .1 167 147 .1 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 168 148 .25 169 148 .2 170 148 .2 171 148 .15 172 148 .15 173 148 .1 174 149 .3 175 149 .25 176 149 .2 177 149 .2 178 149 .15 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 179 149 .1 180 120 181 120 182 120 183 120 184 121 185 121 186 121 187 121 188 122 189 122 EMPLOYEE_ID MANAGER_ID COMMISSION_PCT ----------- ---------- -------------- 190 122 191 122 192 123 193 123 194 123 195 123 196 124 197 124 107 rows selected. SQL> SELECT COUNT(NVL(COMMISSION_PCT, 0)) FROM hr.employees 2 where COMMISSION_PCT is null; COUNT(NVL(COMMISSION_PCT,0)) ---------------------------- 72
1
2
3
4
5
6SQL> SELECT COUNT(DISTINCT COMMISSION_PCT) FROM hr.employees 2 where COMMISSION_PCT is null; <span style="color:#ff0000;">//因为每个null都不相等</span> COUNT(DISTINCTCOMMISSION_PCT) ----------------------------- 0
1
2
3
4
5
6
7SQL> SELECT COUNT( COMMISSION_PCT) FROM hr.employees 2 where COMMISSION_PCT is null; COUNT(COMMISSION_PCT) --------------------- 0 //<span style="font-family: 宋体; line-height: 24px; "><span style="color:#ff0000;">使用count(列名)会忽略列中值为NULL的行</span></span>
最后
以上就是落寞学姐最近收集整理的关于列值为null相关知识的全部内容,更多相关列值为null相关知识内容请搜索靠谱客的其他文章。
发表评论 取消回复