我有两个表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
。