SQL在名称的一部分为空时追加多个表
我想知道,是否可以根据表名的一部分,在一个查询和另一个查询之后追加查询。我们的SQL server建立在基于国家的数据库中,这意味着每个国家都有自己的数据库。每个国家都有一家商店,我们根据邮政编码和商店名称为商店命名。与该特定存储相关的所有表都以邮政编码和名称开头,后跟“$”,然后是表名 假设名称的第一部分是“NO6800 Store1$”,这是动态部分。 之后,该表将命名为“销售发票标题”,这对于所有商店都是相同的 我的问题是,如果我能够让SQL找到所有包含值“Sales Invoice Header”的表,并将所有查询自动附加到一个表中。如果可能的话,如果我能在全国数据库中找到它,那就太好了SQL在名称的一部分为空时追加多个表,sql,sql-server,Sql,Sql Server,我想知道,是否可以根据表名的一部分,在一个查询和另一个查询之后追加查询。我们的SQL server建立在基于国家的数据库中,这意味着每个国家都有自己的数据库。每个国家都有一家商店,我们根据邮政编码和商店名称为商店命名。与该特定存储相关的所有表都以邮政编码和名称开头,后跟“$”,然后是表名 假设名称的第一部分是“NO6800 Store1$”,这是动态部分。 之后,该表将命名为“销售发票标题”,这对于所有商店都是相同的 我的问题是,如果我能够让SQL找到所有包含值“Sales Invoice He
提前感谢:)查看查询
sys.databases
和sys.tables
系统表。它们包含一个名称
列,您可以使用普通的查询来查找数据库
例如:
select * from sys.databases where name LIKE '%Norway'
select * from sys.tables where name LIKE '%Sales Invoice Header'
这是可以做到的
您需要标识所有表名(假设它们具有相同的结构),然后构建一个CTE查询,该查询包含来自与union all联合的每个表的WITH select语句,然后是您需要在所有以CTE为目标的表中运行的最终查询
例如:
WITH CrossCountry_CTE (Col1, Col2, ColN)
AS
-- Define the CTE query.
(
SELECT Col1, Col2, ColN FROM NO6800Store1$SalesInvoiceHeader
UNION ALL
SELECT Col1, Col2, ColN FROM XX0000StoreU$SalesInvoiceHeader
UNION ALL
..
SELECT Col1, Col2, ColN FROM YY0000StoreV$SalesInvoiceHeader
)
-- Define the outer query referencing the CTE name. Random query here:
SELECT Col1, COUNT(Col2) AS TotalSales, ColN
FROM CrossCountry_CTE
GROUP BY ColN, Col1
ORDER BY Col1, ColN;
您使用的是哪种数据库管理系统?Oracle、MySQL、SQL Server等?我遗漏了一个重要的细节。。。哎呀。它是Microsoft SQL Server。我只想在MicrosoftSQLServerManagementStudio 18中进行查询。SQL Server是吗?。。MySQL???……有了它,您可以找到结构SELECT*FROM INFORMATION\u SCHEMA。TABLES@ArunPalanisamy很遗憾,SQL Server 12.0.6214.1sys.tables没有显示我要查找的表。