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。
誰かがこれを説明してくれませんか?
回答:
このタイプのコマンドは通常、あるテーブルの構造を別のテーブルにコピーするために使用されます。この場合、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ですが、グーグルの結果はそれを使用していない人が非常に多いので、おそらくそれを取り巻くいくつかのhijinkがあります。
これは、制約、キー、インデックス、IDプロパティ、およびデータ行を除いて、テーブルの構造をコピーするのに役立ちます。
このクエリはEMPL_DEMO、WHERE 1=2条件が常にとして評価されるため、employeesテーブルからコピーされた行のないテーブルを作成しますFALSE。
CREATE TABLE EMPL_DEMO
AS
SELECT *
FROM employees
WHERE 1=2;
私の友人、グーグルを信頼してください。あなたがそのステートメントをグーグルで検索したときの最初の結果の下から:
例えば:
CREATE TABLE suppliers AS (SELECT * FROM companies WHERE 1=2);これにより、companysテーブルのすべての列が含まれているが、companysテーブルのデータは含まれていないsuppliersという新しいテーブルが作成されます。
オラクル:
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