sql - 如何合并数据库中名称中以相同字符结尾的多个表?
问题描述
我试图在我的数据库中合并 30 多个表而不列出它们。它们都以名称中相同的最后四个字符结尾。
我已经尝试将它们全部列出,但需要一种更有效的方法来识别所有以四个字符结尾的表。我试过寻找一种方法来搜索表的名称。
select * from [dbo].[AL2019CLFC]
union
select * from [dbo].[AR2019CLFC]
union
select * from [dbo].[AZ2019CLFC]
......
我希望有一种方法可以从所有表中识别最后四个字符“CLFC”并将它们联合起来。
解决方案
我建议从系统表列表中查询并构建您的 sql 语句。然后将结果复制回您的查询窗口。从技术上讲,您可以创建一个存储过程来构建一个字符串,然后运行 executesql 来获取结果。
注意:下面的示例将给出一个尾随的 UNION 关键字,应将其删除。同样,如果你想变得更漂亮,你可以在它周围使用 sql,但希望这足以让你继续前进。
微软 SQL 服务器:
select
'SELECT * FROM ' + name + ' UNION ' query
from sys.tables
where name like '%CLFC'
甲骨文:
select
'SELECT * FROM ' || table_name || ' UNION ' query
from user_tables
where table_name like '%CLFC'
推荐阅读
- sql-server - 如何在 SQL Server 中使用子查询而不是视图
- sass - 选择器的自动修复顺序
- scala - 使用 IntelliJ CE 调试 Spark 时无法命中断点
- typescript - 如何在不使用强制转换或为每个字段创建变量的情况下构建对象?
- python - 如何从尖括号列表中创建元组,后跟不带括号的单词
- node.js - 将我的 nodejs/expressjs 应用程序部署到 AWS lambda 后出现 bcrypt 错误
- python - 如何在 Python 中使用 Arcade 制作的现有窗口上制作更新计时器?
- python - 是否可以使用返回类型字典创建任意泛型类型提示?
- node.js - Discord.js - 删除所有包含角色的用户的命令
- google-apps-script - 需要更改句子以从单独的表格中的列表中添加单词