Python Pandas Concatenate에 해당하는 T-SQL

Oct 24 2020

Python Pandas Concatenate 와 비슷한 방식으로 병합하고 싶은 테이블이 몇 개 있습니다 . 정보를 복제하고 싶지 않아서 다소 큽니다. VIEW같은 행동 을하고 싶습니다. 내가 아는 한 작동하지 않고 내가 달성하고 싶은 것을 올바르게 설명하기 위해 가짜 예를 들어 설명하겠습니다.

다음 두 테이블이 있다고 가정 해 보겠습니다.

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

a, b, c동등하지만 다른 데이터를 보유하는 곳 . d존재 table_1가 아니라에서 table_2e존재 table_2가 아니라에서 table_1.

테이블에는 공통 데이터가 없습니다. 즉, JOIN모든 필드에서 결과가 0이됩니다.

다음을 수행 할 수 있기를 원합니다 (또는 이와 동등한 것입니다. 내가 보여주는 것이 불가능하다는 것을 알고 있습니다).

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

내가 실행하면 다음과 같은 방식으로 :

SELECT * FROM MyUnion;

그리고 다음과 같은 것을 얻을 것입니다 ( 1그리고 One일반 숫자 또는 문자열을 나타내는 필러입니다).

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

데이터를 복제하지 않고 이와 같은 작업을 수행 할 수있는 방법이 있습니까? (즉, 모든 것을 담은 다른 테이블 만들기)

감사합니다!

답변

7 ypercubeᵀᴹ Oct 23 2020 at 22:35

이 같은?:

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 ;