SELECT 来自表与 Azure 的联合 SQL
SELECT from union of tables with Azure SQL
我正在尝试使用 Azure SQL 进行 CTAS(创建 Table 作为 Select)。我的第一个也是最重要的问题是我无法从 2 个表的联合中得到 SELECT。例如:
SELECT *
FROM (
SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
)
returns一个
Incorrect syntax near ';'.
error message.
提前感谢您提供的任何提示!
- 使用 CTE 而不是子查询,但如果你真的想那样做,那么你需要始终在每个查询后添加一个别名
代码 1:CTE
With combined_data as (
SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
)
select * from combined_data
CODE2:子查询
SELECT *
FROM (
SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
) as combined_data
您需要一个 table 派生的别名 table:
SELECT t.*
FROM (SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
) t
-------^
Azure SQL 数据库不 支持Create Table As (CTAS)
语法。 Azure Synapse Analytics,专用 SQL 池不支持此语法。
通过运行 select @@version
确认您使用的数据库类型。
如果您使用的是 Azure SQL 数据库,您可以使用 SELECT ... INTO
创建 table 没有索引,或者简单地执行 table CREATE 和 INSERT 到它按照正常情况。一个简单的例子:
SELECT *
INTO someTable
FROM (
SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
) AS x
我正在尝试使用 Azure SQL 进行 CTAS(创建 Table 作为 Select)。我的第一个也是最重要的问题是我无法从 2 个表的联合中得到 SELECT。例如:
SELECT *
FROM (
SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
)
returns一个
Incorrect syntax near ';'. error message.
提前感谢您提供的任何提示!
- 使用 CTE 而不是子查询,但如果你真的想那样做,那么你需要始终在每个查询后添加一个别名
代码 1:CTE
With combined_data as (
SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
)
select * from combined_data
CODE2:子查询
SELECT *
FROM (
SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
) as combined_data
您需要一个 table 派生的别名 table:
SELECT t.*
FROM (SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
) t
-------^
Azure SQL 数据库不 支持Create Table As (CTAS)
语法。 Azure Synapse Analytics,专用 SQL 池不支持此语法。
通过运行 select @@version
确认您使用的数据库类型。
如果您使用的是 Azure SQL 数据库,您可以使用 SELECT ... INTO
创建 table 没有索引,或者简单地执行 table CREATE 和 INSERT 到它按照正常情况。一个简单的例子:
SELECT *
INTO someTable
FROM (
SELECT * FROM [dbo].[table1]
UNION ALL
SELECT * FROM [dbo].[table2]
) AS x