Python Pandas Concatenate'e eşdeğer T-SQL

Oct 24 2020

Python Pandas Concatenate'in yaptığı gibi birleştirmek istediğim birkaç tablom var. Bilgileri çoğaltmak istemiyorum çünkü oldukça büyük. VIEWBenzer bir davranışım olmasını isterim . İşe yaramayacağını bildiğim kadarıyla sadece neyi başarmak istediğimi doğru bir şekilde açıklamak için sahte bir örnekle açıklayayım.

Diyelim ki bu iki tablom var:

CREATE TABLE table_1 (
    [a] [bigint] NOT NULL,
    [b] [bigint] NOT NULL,
    [c] [varchar] (32) NULL,
    [d] [bigint] NULL,
)
GO

CREATE TABLE table_2 (
    [a] [bigint] NOT NULL,
    [b] [bigint] NOT NULL,
    [c] [varchar] (32) NULL,
    [e] [varchar](256) NULL,
)
GO

Nerede a, b, ceşdeğerdir ancak farklı verileri tutar. dvar table_1ama içinde değil table_2ve evar table_2ama içinde değil table_1.

Tablolar herhangi bir ortak veriyi barındırmaz. Yani, JOINherhangi bir alandaki bir sıfır sonuç getirir.

Aşağıdakileri yapabilmek istiyorum (Ya da eşdeğer bir şey. Gösterdiğimin yapılamayacağını biliyorum):

CREATE VIEW MyUnion FROM(
SELECT * FROM table_1 UNION SELECT * FROM table_2) AS alldata;

Öyle ki koşarsam:

SELECT * FROM MyUnion;

Ve şöyle bir şey elde ederdi ( 1ve Onesadece genel bir sayı veya dizeyi temsil eden dolgu)

a       b       c       d       e
1       1       One     1       NULL
1       1       One     NULL    One

Verileri kopyalamadan böyle bir şey yapmanın bir yolu var mı? (yani her şeyi tutan başka bir tablo oluşturmak)

Teşekkür ederim!

Yanıtlar

7 ypercubeᵀᴹ Oct 23 2020 at 22:35

Bunun gibi bir şey mi ?:

CREATE VIEW MyUnion AS
SELECT
    a, b, c,
    d,
    CAST(NULL AS varchar(32)) AS e 
FROM table_1 
UNION ALL
SELECT
    a, b, c, 
    CAST(NULL AS bigint) AS d,
    e
FROM table_2 ;