首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用列计数和名称选择sql表名称

使用列计数和名称选择sql表名称
EN

Stack Overflow用户
提问于 2016-03-24 19:01:21
回答 2查看 3.6K关注 0票数 0

我的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

这有意义吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-24 19:20:17

我编写MS SQL 2012 Server语法(TSQL)

解决问题的第一步是找出哪些表有x (21)个字段。

代码语言:javascript
运行
复制
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

在此之后,您必须比较文件名

票数 2
EN

Stack Overflow用户

发布于 2016-03-24 19:06:23

像这样吗?(对于SQL Server)

代码语言:javascript
运行
复制
select t.name, c.name, count(*) as duplicate_count from sys.tables t
inner join sys.columns c on c.object_id = t.object_id
group by t.name, c.name
having count(*) > 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36198627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档