为什么在SQL CREATE TABLE语法中使用“where 1 = 2”?
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;  我在网上的某个地方读了这个声明,但是我不明白WHERE 1=2 。 
请有人解释一下吗?
 这种types的命令通常用于将一个表的结构复制到另一个表中。 在这种情况下, EMPL_DEMO将具有与employees相同的列结构, 除了键或约束 。 
  1=2总是评估为False ,这会阻止您复制任何行。 
  CREATE TABLE (创build一个新表) 
  EMPL_DEMO (称为EMPL_DEMO) 
  AS (具有数据和结构) 
 SELECT * FROM employees WHERE 1=2;  (员工中的所有东西都是1 = 2,因为1不是2  – 复制结构和所有0匹配的行) 
实质上是复制结构而不是数据。
这个语法是一样的,但更明显的是,它创build了一个结构相同的表,没有数据。
 CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0; 
这可以用于复制表的结构,但不包括它的约束,键,索引,标识属性和数据行。
 这个查询将创buildEMPL_DEMO表,没有从雇员表复制的行,因为WHERE 1=2条件总是被评估为FALSE 。 
  CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2; 
信任Google,我的朋友。 当你谷歌的声明从第一个结果的底部 :
例如:
CREATE TABLE suppliers AS (SELECT * FROM companies WHERE 1=2);这将创build一个名为供应商的新表,其中包括公司表中的所有列,但没有公司表中的数据。
甲骨文:
 CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2; //just structure not data CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=1; //ststructure and data 
在Teradata数据库中更好地理解:
 CREATE TABLE EMPL_DEMO AS Memployees with no data; //structure CREATE TABLE EMPL_DEMO AS Memployees with data; //structure and data