![](/img/trans.png)
[英]How to get all columns of table1 and all rows of table2 which belong to table1?
[英]finding which extra columns are present in table1 in comparison with table2
我試圖找出與table2
相比table1
中存在哪些額外的列。 因此,我想到了如下使用sys.columns
信息。
但是,我認為這里沒有得到正確的結果,因為我的table1包含90
列,而table2包含50
列,所以我期望我的結果只有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
關鍵字,並考慮使用它,但會出現一些錯誤。
SELECT NAME
FROM sys.columns
WHERE object_id = Object_id('CardioVascular.AcuteCareHeartFailureInpatientCoded')
minus
SELECT NAME
FROM sys.columns
WHERE object_id = Object_id('CardioVascular.HeartFailureInpatientCoded')
我發現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
你可以做這樣的事情
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”和“ table 2”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.