我正在尝试合并以下查询:
SELECT TOP 1 [DATE] FROM [database 1].[DBO].[table1] order by DATE desc;
SELECT TOP 1 [DATE] FROM [database 2].[DBO].[table1] order by DATE desc;
显然,UNION ALL
上的order by
会与html,body{
padding:0;
margin:0;
}
条款发生冲突。
最终,我需要在选择第一个条目之前对每个表进行排序。一旦选择了条目,我想将所有后排序条目组合成一个结果。
我怎样才能做到这一点?
答案 0 :(得分:0)
你可以这样做。您基本上希望排序中显示最高的表具有最低的tblNumber。请注意,排序实际上发生在union
之后,但只要tblNumbers正确,它就会完全相同。
select * --if you don't want tblNumber returned, select all columns except tblNumber
from
(
SELECT 1 as tblNumber
, [DATE]
FROM [database 1].[DBO].[table1]
) tbl1
union all
(
SELECT 2 as tblNumber
, [DATE]
FROM [database 2].[DBO].[table1]
) tbl2
order by tblNumber, [DATE] desc
答案 1 :(得分:0)
使用括号怎么样?好吧,实际上有一个子查询:
SELECT tt.*
FROM ((SELECT TOP 1 [DATE]
FROM [database 1].[DBO].[table1]
order by DATE desc
) UNION ALL
(SELECT TOP 1 [DATE]
FROM [database 2].[DBO].[table1]
order by DATE desc
)
) tt;
如果您愿意,可以向外部查询添加额外的order by
。