2017-09-16 46 views
-1

最近我正在浏览一些在线求职面试问题,发现SQL下的多选题。以下SQL语句的答案是什么

EMPLOYEES有5行。考虑下面的SQL语句序列。

SQL>CREATE TABLE myTable SELECT AS (SELECT * FROM EMPLOYEES); 
SQL>INSERT INTO myTable SELECT * FROM myTable; 
SQL>INSERT INTO myTable SELECT * FROM myTable; 
SQL>INSERT INTO myTable SELECT * FROM myTable; 
SQL>INSERT INTO myTable SELECT * FROM myTable 

如果SQL语句SELECT COUNT(*)FROM myTable;执行上面列出的所有语句,什么都会被打印后执行是

a) 80 
b) 25 
c) 20 
d) 5 

我想答案是25,但在线门户是说,正确答案是80。

但是怎么样,不知道!任何人都可以帮忙吗?

+0

您提供的资料不complete..This类型的问题,将在您提供DDL,DML,也是你的企图 – TheGameiswar

+0

请花一些时间看看这个链接了解更多上深受好评如何改善问题(https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) – TheGameiswar

+0

@TheGameiswar,其实这是确切的问题。 – Sahid

回答

3

80是正确的答案。

CREATE TABLE myTable AS (SELECT * FROM EMPLOYEES); 

后有5行MYTABLE。

INSERT INTO myTable SELECT * FROM myTable之后,MYTABLE中有10行。

INSERT INTO myTable SELECT * FROM myTable之后,MYTABLE中有20行。

INSERT INTO myTable SELECT * FROM myTable之后MYTABLE中有40行。

INSERT INTO myTable SELECT * FROM myTable之后,MYTABLE中有80行。

此时SELECT COUNT(*) FROM MYTABLE将返回80

SQLFiddle here

4

编辑回答:答案将是80,因为

  1. 步骤:myTable的:5(INSERT INTO myTable的SELECT * FROM myEmployees)
  2. 步骤:myTable的:5 + myTable的=> 10
  3. 步骤:myTable的:10 + myTable的=> 20
  4. 步骤:myTable的:20 + myTable的=> 40
  5. 步骤:myTable的:40 + myTable的=> 80 可以看到这里的细节http://rextester.com/TQHFE11034