小编izz*_*zzy的帖子

使用UNION和ORDER BY选择TOP N.

鉴于下面的示例,为什么在下面的查询2中使用UNION ALLwith两个SELECT TOP 5语句似乎不尊重该ORDER BY子句?

查询1返回预期结果,但不包括所需的联合.查询2演示了意外行为.查询3是我目前用于获得所需结果的解决方法.

CREATE TABLE #T1 ([ID] int IDENTITY(1,1), [Description] varchar(100), [Inactive] bit);
CREATE TABLE #T2 ([ID] int IDENTITY(1,1), [Description] varchar(100), [Inactive] bit);

INSERT INTO #T1([Description], [Inactive]) VALUES ('One', 1);
INSERT INTO #T1([Description], [Inactive]) VALUES ('Two', 0);
INSERT INTO #T1([Description], [Inactive]) VALUES ('Three', 1);
INSERT INTO #T1([Description], [Inactive]) VALUES ('Four', 0);
INSERT INTO #T1([Description], [Inactive]) VALUES ('Five', 1);
INSERT INTO #T1([Description], [Inactive]) VALUES ('Six', 0);
INSERT INTO #T1([Description], [Inactive]) VALUES ('Seven', …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

3
推荐指数
2
解决办法
2403
查看次数

标签 统计

sql-server ×1

t-sql ×1