[sql] SQL CREATE TABLE 구문에서 “where 1 = 2″를 사용하는 이유는 무엇입니까?

CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;

나는 인터넷 어딘가 에서이 진술을 읽었지만 WHERE 1=2.

누구든지 설명해 주시겠습니까?



답변

이 유형의 명령은 일반적으로 한 테이블의 구조를 다른 테이블로 복사하는 데 사용됩니다. 이 경우은의 EMPL_DEMO열 구조가 동일합니다 employees. 키 또는 제한을 제외 .

1=2항상로 평가 False되는이 행 중 하나를 복사에서 당신을 방지 할 수 있습니다.


답변

CREATE TABLE (새 테이블 만들기)

EMPL_DEMO (EMPL_DEMO라고 함)

AS (데이터 및 구조 포함)

SELECT * FROM employees WHERE 1=2; (1 = 2 인 직원의 모든 것. 1은 2가 아니므로-구조와 일치하는 행 0 개 모두 복사)

.. 본질적으로 데이터가 아닌 구조를 복사합니다.


답변

이 구문은 동일하지만 데이터가없는 동일한 구조의 테이블을 만드는 것이 더 분명합니다.

CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0;


답변

다음을 제외한 테이블의 구조를 복사하는 데 유용 할 수 있습니다. 제약 조건, 키, 인덱스, ID 속성 및 데이터 행을 .

이 쿼리는 조건이 항상로 평가되므로 EMPL_DEMO직원 테이블에서 복사 된 행이없는 테이블을 만듭니다 .WHERE 1=2FALSE

  CREATE TABLE EMPL_DEMO
  AS
  SELECT *
  FROM employees
  WHERE 1=2;


답변

내 친구, Google을 신뢰하십시오. 해당 진술을 Google에 검색했을 때 첫 번째 결과의 하단에서 :

예를 들면 :

CREATE TABLE suppliers
  AS (SELECT *
    FROM companies WHERE 1=2);

이렇게하면 companies 테이블의 모든 열을 포함하지만 companies 테이블의 데이터는 포함하지 않는 supplier라는 새 테이블이 생성됩니다.


답변

신탁:

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에서

select * into table1 from table2 where 1 = 2 (Only Structure)

* 선택 *을 table2에서 table1로, 여기서 1 = 1 (데이터가있는 구조)