CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
Bu ifadeyi internette bir yerde okudum ama anlayamadım WHERE 1=2.
Lütfen kimse bunu açıklar mı?
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
Bu ifadeyi internette bir yerde okudum ama anlayamadım WHERE 1=2.
Lütfen kimse bunu açıklar mı?
Yanıtlar:
Bu tür bir komut genellikle bir tablonun yapısını diğerine kopyalamak için kullanılır. Bu durumda, EMPL_DEMOaynı kolon yapıya sahip olacaktır employees, anahtarlar veya kısıtlamaları için hariç .
Her 1=2zaman False, satırlardan herhangi birini kopyalamanızı engelleyecek şekilde değerlendirilir .
CREATE TABLE new_table LIKE old_table
LIKE old_tablebir SQL Server yapısı değildir ...
nameve typesütunun diğer bazı özellikler olarak da olduğunu düşünün sütun yapısına - örneğin varsayılan değer, takma ad vb).
CREATE TABLE (Yeni Bir Tablo Oluştur)
EMPL_DEMO (EMPL_DEMO olarak adlandırıldı)
AS (Veriler ve yapısı ile)
SELECT * FROM employees WHERE 1=2; (1 = 2 olan çalışanlarda her şey. 1 hiçbir zaman 2 olmadığından - yapıyı ve eşleşen 0 satırın tümünü kopyalayın)
.. Esasen yapıyı kopyalayın, verileri değil.
Bu sözdizimi aynı şeyi yapar, ancak daha açıktır, aynı yapıya sahip, verisiz bir tablo oluşturur.
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0;
LIMIT. Ama görünen o ki MSSQL bundan yoksun (ki bu da bana MSSQL kullanmamak için iyi bir neden olarak çarpıcı geliyor). Görünüşe göre var TOP, ancak google sonuçlarında o kadar çok insan bunu kullanmıyor, bu yüzden muhtemelen onu çevreleyen bir hırsızlık var.
Bu , sınırlamaları, anahtarları, dizinleri, kimlik özelliği ve veri satırları hariç bir tablonun yapısını kopyalamak için yararlı olabilir .
Koşul her zaman olarak değerlendirileceğinden, bu sorgu EMPL_DEMOçalışanlar tablosundan kopyalanan satır içermeyen bir tablo oluşturacaktır .WHERE 1=2FALSE
CREATE TABLE EMPL_DEMO
AS
SELECT *
FROM employees
WHERE 1=2;
Google'a güven dostum. Bu ifadeyi google'da arattığınızda ilk sonucun altından :
Örneğin:
CREATE TABLE suppliers AS (SELECT * FROM companies WHERE 1=2);Bu, şirketler tablosundaki tüm sütunları içeren, ancak şirketler tablosundaki verileri içermeyen tedarikçiler adı verilen yeni bir tablo oluşturacaktır.
Oracle:
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 Veritabanında daha iyi anlama:
CREATE TABLE EMPL_DEMO AS Memployees with no data; //structure
CREATE TABLE EMPL_DEMO AS Memployees with data; //structure and data
SQL Server'da
1 = 2 (Sadece Yapı) olan table2'den table1'e * seçin
1 = 1 (Verili yapı) olan table2'den table1'e * seçin