从SQL Server中的两个表中获取不匹配的行



我有两个表table_a和table_b。表格结构如下所示:

table_a:

col_name  |  data_type                        
----------+--------------
name    |   nvarchar
age     |   nvarchar
city    |   nvarchar
dob     |   nvarchar

table_b:

col_name  |  data_type                        
----------+--------------
name    |   nvarchar
age     |   int
city    |   nvarchar
dob     |   datetime
country  |   nvarchar

现在,我想要所有那些在输出结果中具有不匹配的data_type的列名,即age和dob。

嗯。假设表在同一个数据库中,则可以使用information_schema:

select c.column_name
from information_schema.columns c
where c.table_name in ('table_a', 'table_b')
group by c.column_name
having min(data_type) <> max(data_type)

注意:这不会返回仅在一个表中的列。如果需要,请添加or count(*) = 1

相关内容

  • 没有找到相关文章

最新更新