ماهو - لماذا استخدام "حيث 1=2" على بناء جملة SQL CREATE TABLE؟




شرح online (7)

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

قرأت هذا البيان في مكان ما على الإنترنت ولكن لم أتمكن من فهم WHERE 1=2 .

هل من فضلكم ، اشرح هذا؟


Answers

يستخدم هذا النوع من الأوامر عادة لنسخ بنية جدول إلى آخر. في هذه الحالة ، سيكون لدى EMPL_DEMO بنية عمود employees ، باستثناء المفاتيح أو القيود .

يتم دائمًا تقييم 1=2 إلى False مما يمنعك من نسخ أي من الصفوف.



وحي:

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

هذه الصيغة تفعل نفس الشيء ، ولكنها أكثر وضوحًا ، إنها تنشئ جدولًا بنفس البنية ، بدون بيانات.

CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0;

في SQL Server

حدد * في table1 من table2 حيث 1 = 2 (البنية فقط)

حدد * في table1 من table2 حيث 1 = 1 (Structure with data)


يمكن أن يكون هذا مفيدًا في نسخ بنية الجدول باستثناء القيود والمفاتيح والفهارس وممتلكات الهوية وصفوف البيانات.

سيعمل هذا الاستعلام على إنشاء جدول EMPL_DEMO بدون أي صفوف يتم نسخها من جدول "الموظفين" WHERE 1=2 يتم تقييم شرطين على أنهما FALSE دائمًا.

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

select name, email
, case 
when ROW_NUMBER () over (partition by name, email order by name) > 1 then 'Yes'
else 'No'
end "duplicated ?"
from users




sql