我试图找出与table1
相比table2
中存在哪些额外列。所以,我想到使用sys.columns
中的信息如下。
但是,我不认为我在这里得到正确的结果,因为我的table1包含90
列,而table2包含50
,所以我希望我的结果只有{{1}行。但是,它有更多。
40
我还在网站上看到了SELECT NAME
FROM sys.columns
WHERE object_id = Object_id('CardioVascular.AcuteCareHeartFailureInpatientCoded')
EXCEPT
(SELECT NAME
FROM sys.columns
WHERE object_id = Object_id('CardioVascular.HeartFailureInpatientCoded'))
关键字,并考虑过使用它,但却遇到了一些错误。
minus
答案 0 :(得分:1)
我发现INFORMATION_SCHEMA在这些情况下非常有用。
SELECT *
FROM (
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'AcuteCareHeartFailureInpatientCoded') t1
FULL OUTER JOIN (
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'HeartFailureInpatientCoded') t2 ON t1.COLUMN_NAME = t2.COLUMN_NAME
答案 1 :(得分:1)
你可以做这样的事情
SELECT TABLE_NAME,
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'table1' AND
COLUMN_NAME NOT IN (SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table2')
只需更换' table1'和'表2'用你的表名