一、原题
View the Exhibit and examine the structure of the PRODUCTS table.
You need to generate a report in the following format:
CATEGORIES
5MP Digital Photo Camera's category is Photo
Y Box's category is Electronics
Envoy Ambassador's category is Hardware
Which two queries would give the required output? (Choose two.)
![]()
A. SELECT prod_name ||q'' || 's category is ' || prod_category CATEGORIES
FROM products;
B. SELECT prod_name || q'['s] || 'category is ' || prod_categoryCATEGORIES
FROM products;
C. SELECT prod_name || q'\'s\' || 'category is ' || prod_categoryCATEGORIES
FROM products;
D. SELECT prod_name || q'<'s>' || 'category is ' || prod_category CATEGORIES
FROM products;
答案:CD
二、题目翻译
查看PRODUCTS表结构。
你需要获得如下格式的报表:
CATEGORIES
5MP Digital Photo Camera's category is Photo
Y Box's category is Electronics
Envoy Ambassador's category is Hardware
哪两个查询给出需求的结果?(选择两个)
三、题目解析
这个题目,实际上,就是要考怎么样显示出's,也就是怎么样使用转义字符。
q操作符,具体可以查看:
http://blog.csdn.net/holly2008/article/details/23214389
注:这里没有建products表,我用了emp表做的测试,看到效果就可以了。
SQL> SELECT ename || q'['s] || ' emp_number is ' || empno emp_info
2 FROM emp;
ERROR:
ORA-01756: quoted string not properly terminated
SQL> SELECT ename ||q'' || 's emp_number is ' ||empno emp_info
2 FROM emp;
ERROR:
ORA-01756: quoted string not properly terminated
SQL> SELECT ename|| q'\'s\' || ' emp_number is ' ||empno emp_info
2 FROM emp;
EMP_INFO
----------------------------
SMITH's emp_number is 7369
ALLEN's emp_number is 7499
WARD's emp_number is 7521
JONES's emp_number is 7566
MARTIN's emp_number is 7654
BLAKE's emp_number is 7698
CLARK's emp_number is 7782
SCOTT's emp_number is 7788
KING's emp_number is 7839
TURNER's emp_number is 7844
ADAMS's emp_number is 7876
JAMES's emp_number is 7900
FORD's emp_number is 7902
MILLER's emp_number is 7934
SQL> SELECT ename|| q'<'s>' || ' emp_number is ' || empno emp_info
2 FROM emp;
EMP_INFO
----------------------------
SMITH's emp_number is 7369
ALLEN's emp_number is 7499
WARD's emp_number is 7521
JONES's emp_number is 7566
MARTIN's emp_number is 7654
BLAKE's emp_number is 7698
CLARK's emp_number is 7782
SCOTT's emp_number is 7788
KING's emp_number is 7839
TURNER's emp_number is 7844
ADAMS's emp_number is 7876
JAMES's emp_number is 7900
FORD's emp_number is 7902
MILLER's emp_number is 7934
2 FROM emp;
ERROR:
ORA-01756: quoted string not properly terminated
SQL> SELECT ename ||q'' || 's emp_number is ' ||empno emp_info
2 FROM emp;
ERROR:
ORA-01756: quoted string not properly terminated
SQL> SELECT ename|| q'\'s\' || ' emp_number is ' ||empno emp_info
2 FROM emp;
EMP_INFO
----------------------------
SMITH's emp_number is 7369
ALLEN's emp_number is 7499
WARD's emp_number is 7521
JONES's emp_number is 7566
MARTIN's emp_number is 7654
BLAKE's emp_number is 7698
CLARK's emp_number is 7782
SCOTT's emp_number is 7788
KING's emp_number is 7839
TURNER's emp_number is 7844
ADAMS's emp_number is 7876
JAMES's emp_number is 7900
FORD's emp_number is 7902
MILLER's emp_number is 7934
SQL> SELECT ename|| q'<'s>' || ' emp_number is ' || empno emp_info
2 FROM emp;
EMP_INFO
----------------------------
SMITH's emp_number is 7369
ALLEN's emp_number is 7499
WARD's emp_number is 7521
JONES's emp_number is 7566
MARTIN's emp_number is 7654
BLAKE's emp_number is 7698
CLARK's emp_number is 7782
SCOTT's emp_number is 7788
KING's emp_number is 7839
TURNER's emp_number is 7844
ADAMS's emp_number is 7876
JAMES's emp_number is 7900
FORD's emp_number is 7902
MILLER's emp_number is 7934