SQL Server中多个表格求出相同列和不同列(答案来自优快云上SQL专家的回答)

本文介绍了一种SQL方法,用于找出多个表中的相同列名,并进一步展示了如何获取每个表独有的列。通过两个SQL查询实现,首先识别共同列名,接着找出各表特有列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从不同表格中求出所有列名相同的列(不考虑类型和精度等),注意最后一列的数字3,是查询的表格数目
select a.name ,count(1) as tt from syscolumns a,sysobjects b
where a.id=b.id and b.xtype='u' and b.name in ('table_1','table_2','table_3')
group by a.name
having count(1)=3;

从不同表格中求出相同列后,每个表格去除掉这些相同列后返回的结果

create view Test
as
select a.name ,count(1) as tt from syscolumns a,sysobjects b
where a.id=b.id and b.xtype='u' and b.name in ('table_1','table_2','table_3')
group by a.name
having count(1)=3;
go
select  a.name as 列名
from syscolumns a,sysobjects b
where b.xtype='u' and a.id=b.id  and b.name in ('table_1') and a.name not in (select name from Test)
group by b.name,a.name having count(1)=1

drop view Test


原帖地址:如何查询出N张表中的相同列和每个表各自的不同列(N不定且表结构不能预知)

转载于:https://www.cnblogs.com/Cindy_weiwei/archive/2009/08/06/1540590.html

在数据处理分析过程中,经常需要将表格中的转换为行,以达到数据规范化的目的。为了深入理解这一过程及其注意事项,建议参考这篇资料:《SQL知识点:使用Unpivot函数实现转行》。这篇文章详细介绍了Unpivot函数的使用方法以及如何将表中的多个转换为单数据,非常适合那些需要掌握Unpivot函数的数据库管理员开发人员。 参考资源链接:[SQL知识点:使用Unpivot函数实现转行](https://wenku.csdn.net/doc/645b7ba7fcc53913682b8688?spm=1055.2569.3001.10343)SQL Server中,Unpivot函数被用于将表格转换为行。这种转换对于数据仓库中的维度表建模或数据展示是非常有用的。下面是如何使用Unpivot函数进行转行操作的步骤关键点: 首先,Unpivot函数的基本语法是: ```sql SELECT * FROM table_name UNPIVOT ( column_name FOR column_list IN (source_columns) ) AS unpivoted_table; ``` 其中,`table_name`指的是原始的表名,`column_name`是你希望得到的单一列的名称,`column_list`是这个单一列在结果集中展示的名称,`source_columns`是需要转换的表。 例如,如果你有一个包含多个电话的客户信息表,你可以使用以下SQL语句将这些电话转换为两一列是电话类型,另一列是电话号码。 ```sql SELECT * FROM CustomerPhones UNPIVOT ( Phone FOR PhoneType IN (Phone1, Phone2, Phone3) ) AS up; ``` 在这个例子中,`CustomerPhones`是原始表,`Phone`是转换后的新,`PhoneType`是展示电话类型的,而`(Phone1, Phone2, Phone3)`是需要转换的电话。 使用Unpivot函数时应注意以下几点: 1. 确保你的SQL Server版本支持Unpivot函数。 2. 在使用Unpivot函数时,明确指定哪些需要被转换。 3. 保留原始数据表的主键或其他唯一标识符,以保证转换后的数据仍然可以正确关联。 4. 使用`UNPIVOT`时,确保转换后的名称与原始数据表中的名称冲突。 5. 注意Unpivot函数会自动过滤掉null值,你需要在查询中额外处理这些null值。 通过遵循上述步骤注意事项,你可以高效且准确地使用Unpivot函数将多数据转换为单数据。对于希望更进一步学习SQL Server数据操作的用户,推荐继续阅读《SQL知识点:使用Unpivot函数实现转行》中的进阶内容案例分析,以便在实际工作中灵活运用这一强大的工具。 参考资源链接:[SQL知识点:使用Unpivot函数实现转行](https://wenku.csdn.net/doc/645b7ba7fcc53913682b8688?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值