y row of a queriedtable or
view. These functionscan appear in select lists, WHERE clauses, START WITH and
CONNECT BY clauses, andHAVING clauses
很多单行函数都不止传一个参数,比如数值函数中的ATAN2(m,n),所以a选项错误
单行函数返回的结果也不一定和改行的数据类型相同,比如字符函数中的ASCII(char)
返回的number类型
综上可得 D和E正确
5. Which SQL statementswould display the value 1890.55 as $1,890.55 (Choose three .)
A. SELECTTO_CHAR(1890.55,'$0G000D00')
FROM DUAL;
B. SELECTTO_CHAR(1890.55,'$9,999V99')
FROM DUAL;
C. SELECTTO_CHAR(1890.55,'$99,999D99')
FROM DUAL;
D. SELECTTO_CHAR(1890.55,'$99G999D00')
FROM DUAL;
E. SELECTTO_CHAR(1890.55,'$99G999D99')
FROM DUAL;
Answer: ADE
解析:
scott@ORCL>SELECTTO_CHAR(1890.55,'$0G000D00')
2 FROMDUAL;
TO_CHAR(18
----------
$1,890.55
scott@ORCL>SELECTTO_CHAR(1890.55,'$9,999V99')
2 FROMDUAL;
TO_CHAR(1
---------
$1,89055
scott@ORCL>SELECT TO_CHAR(1890.55,'$99,999D99')
2 FROMDUAL;
SELECTTO_CHAR(1890.55,'$99,999D99')
*
第 1 行出现错误:
ORA-01481: 无效的数字格式模型
scott@ORCL>SELECTTO_CHAR(1890.55,'$99G999D00')
2 FROMDUAL;
TO_CHAR(189
-----------
$1,890.55
scott@ORCL>SELECTTO_CHAR(1890.55,'$99G999D99')
2 FROMDUAL;
TO_CHAR(189
-----------
$1,890.55
格式里面的G代表逗号,D代表为点
V 它的作用在于做一个计算。
例如TO_CHAR(N,'999V9'),以p表示V的位置,则该表达式=to_char(N×(10的P-1次方)).但是9个数又必须保证大于等于乘积之后表示的位数.
更多格式说明:
http://blog.csdn.net/zbdba/article/details/17042195
6. Examine the structureof the SHIPMENTS table:
name Null Type
PO_ID NOT NULL NUMBER(3)
PO_DATE NOT NULL DATE
SHIPMENT_DATE NOT NULLDATE
SHIPMENT_MODEVARCHAR2(30)
SHIPMENT_COSTNUMBER(8,2)
You want to generate areport that displays the PO_ID and the penalty amount to be paid if the
SHIPMENT_DATE is laterthan one month from the PO_DATE. The penalty is $20 per day.
eva luate the followingtwo queries:
SQL> SELECT po_id,CASE
WHEN MONTHS_BETWEEN(shipment_date,po_date)>1 THEN
TO_CHAR((shipment_date -po_date) * 20) ELSE 'No Penalty' END PENALTY
FROM shipments;
SQL>SELECT po_id,DECODE
(MONTHS_BETWEEN(po_date,shipment_date)>1,
TO_CHAR((shipment_date- po_date) * 20), 'No Penalty') PENALTY
FROM shipments;
Which statement is trueregarding the above commands
A. Both executesuccessfully and give correct results.
B. Only the first queryexecutes successfully but gives a wrong result.
C. Only the first queryexecutes successfully and gives the correct result.
D. Only the second queryexecutes successfully but gives a wrong result.
E. Only the second queryexecutes successfully and gives the correct result.
Answer: C
解析:
第一个查询用的 case expressionswhich let you use IF ... THEN ... ELSE logic in SQL statements without
having to invokeprocedures
经过测试,第一个是可以执行成功
第二个查询用的decode,引用官方文档的介绍:
DECODE compares expr toeach search value one by one. If expr is equal to a
search, then OracleDatabase returns the corresponding result. If no match is
found, then Oraclereturns default. If default is omitted, then Oracle returns null.
The arguments can be anyof the numeric types (NUMBER, BINARY_FLOAT, or
BINARY_DOUBLE) orcharacter types.
就是第一个表达式的值和后面的一一匹配,成功就返回匹配成功对应的那个值
经测试,第二表达式是无法执行的,参数个数无效
7. Which two statementsare true regarding the USING and ON clauses in table joins (Choose two.)
A. Both USING and ONclauses can be used for equijoins and nonequijoins.
B. A maximum of one pairof columns can be joined between two tables using the ON clause.
C. The ON clause can beused to join tables on