CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
我在互联网上的某处阅读了此声明,但我听不懂WHERE 1=2。
有人可以解释一下吗?
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
我在互联网上的某处阅读了此声明,但我听不懂WHERE 1=2。
有人可以解释一下吗?
Answers:
这种类型的命令通常用于将一个表的结构复制到另一个表。在这种情况下,EMPL_DEMO将具有相同的柱状结构employees,除了键或约束。
该1=2结果始终为False防止您复制任何行。
CREATE TABLE new_table LIKE old_table
LIKE old_table不是SQL Server构造...
此语法具有相同的功能,但更明显的是,它创建具有相同结构的表,但没有数据。
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0;
LIMIT。但是似乎MSSQL缺少它(这使我不使用MSSQL是一个很好的理由)。显然他们有TOP,但是google结果中有很多人没有使用它,因此可能周围有一些怪癖。
这对于复制表的结构(排除其约束,键,索引,标识属性和数据行)可能很有用。
该查询将创建一个EMPL_DEMO表,该表不从employees表复制任何行,因为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);这将创建一个称为供应商的新表,其中包括公司表中的所有列,但公司表中没有数据。
甲骨文:
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
在SQL Server中
从表2中选择*到表1中,其中1 = 2(仅结构)
从表2中选择*到表1中,其中1 = 1(具有数据的结构)