例1:关键字 'ORDER' 附近有语法错误。
(SELECT
[分类名称]
,[父类编码]
FROM [WSIPDB].[dbo].[分类列表]
ORDER BY [分类名称]
)
union all
(
SELECT
[分类名称]
,[父类编码]
FROM [WSIPDB].[dbo].[分类列表]
ORDER BY [分类名称])
注:union 将会自动删除重复项,union all 则不会删除。
例2:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
select * from (SELECT
[分类名称]
,[父类编码]
FROM [WSIPDB].[dbo].[分类列表]
ORDER BY [分类名称]
) t1
union all
select * from (SELECT
[分类名称]
,[父类编码]
FROM [WSIPDB].[dbo].[分类列表]
ORDER BY [分类名称]
) t2
例3:正确
select * from (SELECT top 1000
[分类名称]
,[父类编码]
FROM [WSIPDB].[dbo].[分类列表]
ORDER BY [分类名称]
) t1
union all
select * from (SELECT top 1000
[分类名称]
,[父类编码]
FROM [WSIPDB].[dbo].[分类列表]
ORDER BY [分类名称]
) t2
本文深入探讨了SQL查询中的ORDER BY子句及其使用限制,包括UNION与UNION ALL的区别,以及如何在特定场景下有效利用这些特性,特别是在视图、内联函数、派生表、子查询和公用表表达式中的应用。通过实例分析,揭示了在数据排序与聚合过程中可能出现的常见错误及解决策略。
1508

被折叠的 条评论
为什么被折叠?



