您的位置:首页 > 数据库 > SQL

sql联合查询|sql交叉查询|除非同时指定了 TOP否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。

2009-04-19 21:06 465 查看
select * from (
select shengname,id as sid,1 as ord from szsheng
union all
select shiname,shengid,2 as ord from szshi) a
order by a.sid asc,ord asc

就可以得到以上结果,但是直接用这个语句手工在T-SQL中建立视图时去没有用提示
除非同时指定了 TOP否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。

直接把这个语句放到企业管理器里让它来修正错误,正确的写法是这样
SELECT TOP 100 PERCENT *
FROM (SELECT shengname, id AS sid, 1 AS ord
FROM szsheng
UNION
SELECT shiname, shengid, 2 AS ord
FROM szshi) a
ORDER BY sid, ord

以下是表结构和期望结果

表1
1 北京
2 上海
3 广东

表2
1 北京区1
2 北京区2
3 上海区1
4 上海区2
5 广州
6 深圳

然后希望查询结果是这样
北京
北京区1
北京区2
上海
上海区1
上海区2
广东
广州
深圳
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐