我有几个USE语句,我希望UNION在一个结果集中获取所有结果,但我不能这样做,因为UNION只能用于SELECT。是否有工作或以任何方式以另一种方式实现我的目标?
示例:
USE Customer
select min(len(Password)) as min,
max(len(Password)) as max,
avg(len(Password)) as avg
FROM Password
USE website
select min(len(password)) as min,
max(len(password)) as max,
avg(len(password)) as avg
FROM Password
我使用不同的数据库和更多的这些语句。因此,我们希望将它们组合在一起。
我正在使用Microsoft SQL Server 2008。
答案 0 :(得分:2)
请勿使用USE
语句。为对象使用完全限定名称(表,视图等)
SELECT
min(len(Password)) AS minPassword,
max(len(Password)) AS maxPassword,
avg(len(Password)) AS avgPasswword
FROM
Customer.dbo.Password
UNION
select
min(len(password)),
max(len(password)),
avg(len(password))
FROM
Website.dbo.Password
这假设你的表有dbo作为所有者。
答案 1 :(得分:1)
您可以使用[database name].[schema name].[table name]
中的UNION
来限定表格名称,如下所示:
select min(len(Password)) as min,
max(len(Password)) as max,
avg(len(Password)) as avg
FROM customer.schemaname.Password
UNION ALL
select min(len(password)) as min,
max(len(password)) as max,
avg(len(password)) as avg
FROM website.schemaname.Password
答案 2 :(得分:0)
您可以在表名前加上要使用的数据库,然后您可以使用UNION ALL
同时查询它们:
select min(len(Password)) as min,
max(len(Password)) as max,
avg(len(Password)) as avg
FROM Customer.yourSchema.Password
UNION ALL
select min(len(password)) as min,
max(len(password)) as max,
avg(len(password)) as avg
FROM website.yourSchema.Password
调用时的结构为:
yourDataBase.yourSchemaName.yourTableName