我的SQL Server数据库中总共有10个表。5个表中有21列,且前5列和后3列具有相同的名称。
如何编写SQL查询来选择这5个表的名称。
使用SQL Server数据库中的列数和列名选择表名
例如:
数据库名称- SampleDB
SampleDB中可用的表有
dbo.sample1
dbo.sample2
dbo.sample3
dbo.sample4
dbo.sample5
dbo.sample6
dbo.sample7
dbo.sample8
dbo.sample9
dbo.sample10
这里的表格
dbo.sample1、dbo.sample4、dbo.sample5、dbo.sample7、dbo.sample9
包含21列each.Also这5个表的前5个列名和后3个列名是相同的。我需要一个查询,它将选择这5个表的名称。
输出将如下所示
1个dbo.sample1
2个dbo.sample4
3个dbo.sample5
4个dbo.sample7
5个dbo.sample9
这有意义吗?
发布于 2016-03-24 19:20:17
我编写MS SQL 2012 Server语法(TSQL)
解决问题的第一步是找出哪些表有x (21)个字段。
SELECT
So.Name AS TableNames,
COUNT(Sc.Name) AS FieldCounter
FROM
Sysobjects AS So -- List of Tables
LEFT OUTER JOIN
SysColumns AS Sc -- List of Fields
ON So.id = sc.ID
WHERE
So.xtype = 'U' -- only show for **U**ser sables
GROUP BY
So.name
HAVING COUNT(Sc.Name) = 21 -- 21 fields in table
在此之后,您必须比较文件名
https://stackoverflow.com/questions/36198627
复制相似问题